2011-03-05 16 views
8

क्या क्षेत्रों के बीच आंशिक रेज़र दृश्य साझा करने का कोई तरीका है?एएसपीनेट एमवीसी - क्षेत्रों के बीच आंशिक साझा करना

उदाहरण के लिए एक लॉगिन आंशिक, यह पाया जाता है कि अगर मैं @Html.Partial("_LoginPartial") का उपयोग करता हूं लेकिन URL Html.ActionLink उत्पन्न करता है तो कॉलिंग क्षेत्र में स्थानीय होते हैं (भले ही आंशिक स्वयं क्षेत्र का हिस्सा न हो)।

_LoginPartial.cshtml is in /Views/Shared/_LoginPartial.cshtml 
Calling view is inside /Areas/Somearea/Views 

Links generated are like: http://example.com/Somearea/Account/Login 
But should always be: http://example.com/Account/Login 

आंशिक स्रोत देखें:

@if(Request.IsAuthenticated) { 
    <text>Welcome <b>@Context.User.Identity.Name</b>! 
    [ @Html.ActionLink(@Messages.Logout, "Logout", "Account") ]</text> 
} 
else { 
    @:[ @Html.ActionLink(@Messages.Login, "Login", "Account") ] 
} 

धन्यवाद

उत्तर

9

आप ActionLink() विधि में क्षेत्र (या एक की कमी) निर्दिष्ट कर सकते हैं:

Html.ActionLink(@Messages.Logout, "Logout", "Account", new { Area = "" }, new{}) 

इससे यह सुनिश्चित होगा लिंक वर्तमान क्षेत्र के भीतर एक यूआरएल को हल नहीं करता है।

संबंधित मुद्दे