2013-04-10 7 views
5

मेरे पास क्षेत्रों का उपयोग कर एमवीसी 4 में एक साइट है। कुछ क्षेत्र में (देता है इसे कहते क्षेत्र), मैं एक नियंत्रक (नियंत्रक) इस कार्रवाई के साथ है:एमवीसी नियंत्रक। क्षेत्रों के साथ निष्पादन

return RedirectToAction("OtherAction", "Controller", new { area = "Area" }); 
:

public ActionResult Index() 
{ 
    return View(); 
} 

public ActionResult OtherAction() 
{ 
    return View("Index"); 
} 

यह अगर मैं इस तरह क्षेत्र/नियंत्रक/OtherAction के लिए एक सरल रीडायरेक्ट कर अच्छा काम करता है

RouteData routeData = new RouteData(); 
routeData.Values.Add("area", "Area"); 
routeData.Values.Add("controller", "Controller"); 
routeData.Values.Add("action", "OtherAction"); 
ControllerController controller = new ControllerController(); 
controller.Execute(new RequestContext(new HttpContextWrapper(HttpContext.ApplicationInstance.Context), routeData)); 

और उस मामले में यह काम नहीं करता:

लेकिन मैं (check here why) इस तरह एक रीडायरेक्ट बनाने की जरूरत है। अंतिम पंक्ति के बाद, OtherAction विधि निष्पादित किया जाता है और उसके बाद इस कोड की अंतिम पंक्ति में यह इस अपवाद फेंकता है:

दृश्य 'सूचकांक' या अपने गुरु नहीं मिला था या कोई दृश्य इंजन खोजा स्थानों का समर्थन । निम्न स्थानों खोजा गया:

~/दृश्य/नियंत्रक/index.aspx

~/दृश्य/नियंत्रक/Index.ascx

~/दृश्य/साझा/index.aspx

~/दृश्य/साझा/Index.ascx

~/दृश्य/नियंत्रक/Index.cshtml

~/दृश्य/नियंत्रक/Index.vbhtml

~/दृश्य/साझा/Index.cshtml

~/दृश्य/साझा/Index.vbhtml

क्यों हो रहा और मैं इसे कैसे ठीक कर सकते हैं कर रहा है?

उत्तर

9

आपको अपवाद मिलता है क्योंकि एएसपी.नेट एमवीसी "रूट" संदर्भ में आपके विचार को देखने की कोशिश करता है और क्षेत्र दृश्य निर्देशिका के अंदर नहीं है क्योंकि आप routeData में क्षेत्र को सही तरीके से स्थापित नहीं कर रहे हैं।

area कुंजी जरूरतों Values

RouteData routeData = new RouteData(); 
routeData.DataTokens.Add("area", "Area"); 
routeData.Values.Add("controller", "Controller"); 
routeData.Values.Add("action", "OtherAction"); 
//... 
में DataTokens संग्रह में स्थापना की और नहीं किया जा करने के लिए
संबंधित मुद्दे