दिलचस्प पोस्ट
एक आलेख में कई पंक्तियाँ प्लॉट करें जब पायथन समान स्ट्रिंग्स के लिए नई मेमोरी आवंटित करता है? प्रक्षेपक में, ब्राउज़र। आईईएलमेंट प्रस्तुति बनाम तत्व.इस प्रस्तुति बनाम तत्व.इस एलेमेंटप्रदर्शन MySQL पाठ बनाम ब्लॉब बनाम कलोब आईफोन – आप एक छवि कैसे रंगते हैं? जीबी में मेमोरी को कम करने के लिए एक आरजीबी छवि को ग्रेस्केल में कनवर्ट करें क्या "n * (रैंड (/ RAND_MAX)" एक विषम यादृच्छिक संख्या वितरण करना है? स्वगर्जर विरासत और संरचना PHP में एक स्ट्रिंग को एक स्ट्रिंग में कनवर्ट कैसे करें जावा में बाइट के रूप में पाठ की एन्कोडिंग का अनुमान लगाया जा रहा है कैसे इस प्रोप को पास करने के लिए {this.props.children} कोड समीक्षा के बाद पुल अनुरोध को अपडेट करने के लिए पसंदीदा गिथूब वर्कफ़्लो फिक्स्ड आवरण के साथ बूटस्ट्रैप ग्रिड – स्टैकिंग से स्तंभ रोकें इंस्टॉल किए गए एंड्रॉइड एप्लिकेशन की सूची प्राप्त करें कुछ अच्छा पायथन ओआरएम समाधान क्या हैं?

HTML.ActionLink विधि

मान लें कि मेरे पास एक कक्षा है

public class ItemController:Controller { public ActionResult Login(int id) { return View("Hi", id); } } 

उस पृष्ठ पर जो आइटम फ़ोल्डर में नहीं है, जहां आइटम ItemController रहता है, मैं Login विधि का एक लिंक बनाना चाहता हूं। तो किस Html.ActionLink विधि का मुझे इस्तेमाल करना चाहिए और मुझे कौन सी पैरामीटर चाहिए?

विशेष रूप से, मैं विधि के प्रतिस्थापन की तलाश कर रहा हूं

 Html.ActionLink(article.Title, new { controller = "Articles", action = "Details", id = article.ArticleID }) 

जो हाल ही में एएसपी.नेट एमवीसी अवतार में सेवानिवृत्त हो गया है।

Solutions Collecting From Web of "HTML.ActionLink विधि"

मुझे लगता है कि आप क्या चाहते हैं:

ASP.NET MVC1

 Html.ActionLink(article.Title, "Login", // <-- Controller Name. "Item", // <-- ActionMethod new { id = article.ArticleID }, // <-- Route arguments. null // <-- htmlArguments .. which are none. You need this value // otherwise you call the WRONG method ... // (refer to comments, below). ) 

यह निम्न विधि ActionLink हस्ताक्षर का उपयोग करता है:

 public static string ActionLink(this HtmlHelper htmlHelper, string linkText, string controllerName, string actionName, object values, object htmlAttributes) 

ASP.NET MVC2

दो तर्क चारों ओर बदल दिया गया है

 Html.ActionLink(article.Title, "Item", // <-- ActionMethod "Login", // <-- Controller Name. new { id = article.ArticleID }, // <-- Route arguments. null // <-- htmlArguments .. which are none. You need this value // otherwise you call the WRONG method ... // (refer to comments, below). ) 

यह निम्न विधि ActionLink हस्ताक्षर का उपयोग करता है:

 public static string ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object values, object htmlAttributes) 

ASP.NET MVC3 +

तर्क MVC2 के समान क्रम में हैं, हालांकि आईडी मान अब जरूरी नहीं है:

 Html.ActionLink(article.Title, "Item", // <-- ActionMethod "Login", // <-- Controller Name. new { article.ArticleID }, // <-- Route arguments. null // <-- htmlArguments .. which are none. You need this value // otherwise you call the WRONG method ... // (refer to comments, below). ) 

इससे लिंक में किसी भी रूटिंग लॉजिक को हार्ड-कोडिंग से बचा जाता है।

  <a href="/Item/Login/5">Title</a> 

यह आपको निम्न HTML आउटपुट देगा, मान लें:

  1. article.Title = "Title"
  2. article.ArticleID = 5
  3. आपके पास अभी भी निर्धारित मार्ग है

। ।

 routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); 

मैं यूसुफ किंग्री के उत्तर में जोड़ना चाहता था। उन्होंने समाधान प्रदान किया लेकिन पहले मैं इसे या तो काम करने के लिए नहीं मिल सका और न ही इसके परिणामस्वरूप आदीप गुप्ता जैसे परिणाम मिला। और फिर मुझे एहसास हुआ कि मार्ग पहले स्थान पर मौजूद है और पैरामीटर को मार्ग से बिल्कुल मिलान करने की जरूरत है। इसलिए मेरे पास एक आईडी था और उसके बाद मेरे मार्ग के लिए एक पाठ पैरामीटर था जिसे भी शामिल करने की आवश्यकता भी थी

 Html.ActionLink(article.Title, "Login", "Item", new { id = article.ArticleID, title = article.Title }, null) 

आप RouteLink() विधि को देखना चाह सकते हैं। वह एक शब्दकोष के माध्यम से आप सब कुछ निर्दिष्ट कर सकते हैं (लिंक पाठ और मार्ग नाम को छोड़कर)

मुझे लगता है कि यूसुफ ने नियंत्रक और कार्रवाई को फ़्लिप किया सबसे पहले कार्रवाई आती है तो नियंत्रक यह कुछ अजीब है, लेकिन जिस तरह से हस्ताक्षर दिखता है

बस चीजों को स्पष्ट करने के लिए, यह वह संस्करण है जो काम करता है (यूसुफ के उदाहरण का अनुकूलन):

 Html.ActionLink(article.Title, "Login", // <-- ActionMethod "Item", // <-- Controller Name new { id = article.ArticleID }, // <-- Route arguments. null // <-- htmlArguments .. which are none ) 
 Html.ActionLink(article.Title, "Login/" + article.ArticleID, 'Item") 

इस बारे में क्या

 <%=Html.ActionLink("Get Involved", "Show", "Home", new { id = "GetInvolved" }, new { @class = "menuitem", id = "menu_getinvolved" } )%> 

यदि आप सभी फैंसी-पैंट जाना चाहते हैं, तो यहां यह जानने के लिए कि आप इसे कैसे बढ़ा सकते हैं:

 @(Html.ActionLink<ArticlesController>(x => x.Details(), article.Title, new { id = article.ArticleID })) 

आपको इसे System.Web.Mvc नामस्थान में रखना होगा:

 public static class MyProjectExtensions { public static MvcHtmlString ActionLink<TController>(this HtmlHelper htmlHelper, Expression<Action<TController>> expression, string linkText) { var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection); var link = new TagBuilder("a"); string actionName = ExpressionHelper.GetExpressionText(expression); string controllerName = typeof(TController).Name.Replace("Controller", ""); link.MergeAttribute("href", urlHelper.Action(actionName, controllerName)); link.SetInnerText(linkText); return new MvcHtmlString(link.ToString()); } public static MvcHtmlString ActionLink<TController, TAction>(this HtmlHelper htmlHelper, Expression<Action<TController, TAction>> expression, string linkText, object routeValues) { var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection); var link = new TagBuilder("a"); string actionName = ExpressionHelper.GetExpressionText(expression); string controllerName = typeof(TController).Name.Replace("Controller", ""); link.MergeAttribute("href", urlHelper.Action(actionName, controllerName, routeValues)); link.SetInnerText(linkText); return new MvcHtmlString(link.ToString()); } public static MvcHtmlString ActionLink<TController>(this HtmlHelper htmlHelper, Expression<Action<TController>> expression, string linkText, object routeValues, object htmlAttributes) where TController : Controller { var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection); var attributes = AnonymousObjectToKeyValue(htmlAttributes); var link = new TagBuilder("a"); string actionName = ExpressionHelper.GetExpressionText(expression); string controllerName = typeof(TController).Name.Replace("Controller", ""); link.MergeAttribute("href", urlHelper.Action(actionName, controllerName, routeValues)); link.MergeAttributes(attributes, true); link.SetInnerText(linkText); return new MvcHtmlString(link.ToString()); } private static Dictionary<string, object> AnonymousObjectToKeyValue(object anonymousObject) { var dictionary = new Dictionary<string, object>(); if (anonymousObject == null) return dictionary; foreach (PropertyDescriptor propertyDescriptor in TypeDescriptor.GetProperties(anonymousObject)) { dictionary.Add(propertyDescriptor.Name, propertyDescriptor.GetValue(anonymousObject)); } return dictionary; } } 

इसमें Route Values और HTML Attributes लिए दो ओवरराइड्स भी शामिल हैं, साथ ही, आपके सभी विचारों को जोड़ना होगा: @using YourProject.Controllers कर या आप इसे अपने वेब में जोड़ सकते हैं। @using YourProject.Controllers web.config <pages><namespaces>

सर्वोत्तम पठनीयता के लिए नामित पैरामीटर का उपयोग करें और भ्रम से बचें:

 @Html.ActionLink( linkText: "Click Here", actionName: "Action", controllerName: "Home", routeValues: new { Identity = 2577 }, htmlAttributes: null) 

एमवीसी 5 के साथ मैंने इसे ऐसा किया है और यह 100% काम कोड है ….

 @Html.ActionLink(department.Name, "Index", "Employee", new { departmentId = department.DepartmentID }, null) 

आप लोग इस से एक विचार प्राप्त कर सकते हैं …

इस प्रकार का उपयोग करें:

@ Html.ActionLink ( "mainpage", "सूचकांक", "घर")

मेनपेज: टेक्स्ट इंडेक्स का नाम: एक्शन व्यू होम: होम कंट्रोलर

बेस का प्रयोग करें ActionLink

 <html> <head> <meta name="viewport" content="width=device-width" /> <title>_Layout</title> <link href="@Url.Content("~/Content/bootsrap.min.css")" rel="stylesheet" type="text/css" /> </head> <body> <div class="container"> <div class="col-md-12"> <button class="btn btn-default" type="submit">@Html.ActionLink("AnaSayfa","Index","Home")</button> <button class="btn btn-default" type="submit">@Html.ActionLink("Hakkımızda", "Hakkimizda", "Home")</button> <button class="btn btn-default" type="submit">@Html.ActionLink("Iletişim", "Iletisim", "Home")</button> </div> @RenderBody() <div class="col-md-12" style="height:200px;background-image:url(/img/footer.jpg)"> </div> </div> </body> </html>