asp.net mvc Url.Action में एरिया कैसे पास करें?




asp.net-mvc html-helper (2)

आप इस Url.Action("actionName", "controllerName", new { Area = "areaName" }); उपयोग कर सकते हैं। Url.Action("actionName", "controllerName", new { Area = "areaName" });

व्यवस्थापक क्षेत्र नियंत्रक नामों और साइट नियंत्रक नामों के बीच टकराव से बचने के लिए नियंत्रक के नाम स्थान को जोड़ना न भूलें।

कुछ इस तरह

 public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional },
                  new[] { "Site.Mvc.Areas.Admin.Controllers" }
            );
        }

Html.ActionLink () में समस्या यह है कि आप टैग के अंदर अतिरिक्त html सामग्री नहीं जोड़ सकते हैं जो इसे उत्पन्न करता है। उदाहरण के लिए, यदि आप पाठ के अलावा एक आइकन जोड़ना चाहते हैं जैसे:

<a href="/Admin/Users"><i class="fa fa-users"></i> Go to Users</a>

Html.ActionLink () का उपयोग करके, आप केवल उत्पन्न कर सकते हैं:

<a href="/Admin/Users">Go to Users</a>

तो, इसे हल करने के लिए, आप Url.Action () का उपयोग टैग के अंदर केवल URL उत्पन्न करने के लिए कर सकते हैं जैसे:

// Here, Url.Action could not generate the URL "/admin/users". So this doesn't work.
<a href="@Url.Action("", "Users", "Admin")"><i class="fa fa-usesr"></i> Go to Users</a>

// This works, as we know it but won't pass the Area needed.
<a href="@Url.Action("", "Users")"><i class="fa fa-users"></i> Go to Users</a>

तो, आप Url.Action () का उपयोग करके क्षेत्र को कैसे पास करते हैं?


@Url.Action("{action}", "{controller}", new { Area = "areaname" });
@Html.ActionLink("LinkName", "{action}", "{controller}", new { area = "{areaname}" }, new { @class = "btn btn-cool" })

अनाम विशेषता के साथ HTML विशेषता के रूप में क्षेत्र का नाम लिखें। आप एक ही चीज़ को प्राप्त करने के लिए एक्शनलिंक html हेल्पर एक्सटेंशन विधि का उपयोग कर सकते हैं।





url.action