मुझे पता है कि यह सही नहीं है, लेकिन उदाहरण के लिए मैं ऐसा कुछ करना चाहूंगा:
<%= Html.Button("Action", "Controller") %>
मेरा लक्ष्य एक HTML बटन बनाना है जो मेरे MVC नियंत्रक की क्रिया विधि को कॉल करेगा।
मुझे पता है कि यह सही नहीं है, लेकिन उदाहरण के लिए मैं ऐसा कुछ करना चाहूंगा:
<%= Html.Button("Action", "Controller") %>
मेरा लक्ष्य एक HTML बटन बनाना है जो मेरे MVC नियंत्रक की क्रिया विधि को कॉल करेगा।
जवाबों:
जब तक आप कार्रवाई पर पोस्ट नहीं करना चाहते, तब तक आपको फॉर्म का उपयोग करने की कोई आवश्यकता नहीं है। एक इनपुट बटन (सबमिट नहीं) ट्रिक करेगा।
<input type="button"
value="Go Somewhere Else"
onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
public static string ActionButton(this HtmlHelper helper, string action, string controller, string text) { return String.Format("<input type=\"button\" value=\"{0}\" onclick=\"location.href='{1}' />",text,Url.Action(action,controller)); }
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller", new { parameter1 = value1 }) %>'" />
रेज़र सिंटैक्स यहाँ है:
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
'input'
करने के लिए 'button'
और कहा कि त्रुटि संकल्प लिया।
<button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("action", "controller")'" >Go Somewhere Else</button>
चाल का उपयोग किया
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />
प्रकार = "बटन" पृष्ठ को सबमिट करने से रोकता है। इसके बजाय यह आपकी कार्रवाई करता है।
इसे इस्तेमाल करे:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)
यह आपके लिए काम करना चाहिए।
आप एक नियंत्रक क्रिया के लिए url उत्पन्न करने के लिए Url.Action का उपयोग कर सकते हैं, इसलिए आप निम्न में से किसी एक का उपयोग कर सकते हैं:
<form method="post" action="<%: Url.Action("About", "Home") %>">
<input type="submit" value="Click me to go to /Home/About" />
</form>
या:
<form action="#">
<input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
<input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
यह आप रेजर में एक विशिष्ट नियंत्रक और एक्शन विधि के लिए अपना फॉर्म जमा कर सकते हैं।
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
बेहतर है कि इस उदाहरण का उपयोग करें
<a href="@Url.Action("Register","Account", new {id=Item.id })"
class="btn btn-primary btn-lg">Register</a>
जब आप नियंत्रक में कार्रवाई को लागू करते हैं, तो उपयोग करें
return View("Index");
या
return RedirectToAction("Index");
जहां Index.cshtml (या पेज जो कार्रवाई उत्पन्न करता है) पृष्ठ पहले से ही परिभाषित है। अन्यथा आप संभावित रूप से "दृश्य या इसके स्वामी को नहीं ढूंढ पाए गए ..." त्रुटि का सामना कर रहे हैं।
स्रोत: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/
Onclick Method के बावजूद आप formation का उपयोग इस प्रकार कर सकते हैं:
<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
इस उदाहरण का उपयोग करें:
<button name="nameButton" id="idButton" title="your title" class="btn btn-secondary" onclick="location.href='@Url.Action( "Index","Controller" new { id = Item.id })';return false;">valueButton</button>
यदि आप होम पेज ("/ होम / इंडेक्स") में हैं और आप एडमिन कंट्रोलर की इंडेक्स कार्रवाई को कॉल करना चाहेंगे, तो निम्नलिखित आपके लिए काम करेगा।
<li><a href="/Admin/Index">Admin</a></li>
बेहतर है कि इस उदाहरण का उपयोग करें ।
कॉल एक्शन और कंट्रोलर का उपयोग करके ActionLink
:
@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})
ठीक है, आप मूल रूप से बटन के लिए कार्रवाई गुजरती हैं और इसे कहते जब क्लिक होता है, इसमें से एक के अंदर होने की जरूरत नहीं है कर सकते हैं HTML का उपयोग की जरूरत है, तो आप onclick
पर बटन जब यह गति प्रदान करने के लिए बटन क्लिक किया ...
<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>
आप हमेशा htmlHelpers के साथ खेल सकते हैं और कुछ सामान बना सकते हैं
public static IHtmlContent BtnWithAction(this IHtmlHelper htmlHelper, string id, string text, string css="", string action="", string controller="")
{
try
{
string str = $"<button id=\"{id}\" class=\"{css}\" type=\"button\" ###>{text}</button>";
if (!string.IsNullOrEmpty(action) && !string.IsNullOrEmpty(controller))
{
string url = ((TagBuilder)htmlHelper.ActionLink("dummy", action, controller)).Attributes["href"];
var click = !string.IsNullOrEmpty(url) ? $"onclick=\"location.href='{url}'\"" : string.Empty;
return new HtmlString(str.Replace("###", click));
}
return new HtmlString(str.Replace("###", string.Empty));
}
catch (Exception ex)
{
Log.Error(ex, ex.Message);
var fkup = "<script>alert(\"assumption is the mother of all failures\")</script>";
return new HtmlString(fkup);
}
}
और फिर दृश्य पर इसे इस तरह से कॉल करें
@Html.BtnWithAction("btnCaretakerBack", "Back", "btn btn-primary float-right", "Index", "Caretakers")