我想我的MVC路由可能會有點麻煩。請注意,我使用ASP.NET MVC 4和Razor Views。ASP.NET MVC路由配置給Http 302對象移動到
我有我的註冊路線如下:
[HandleError]
public class PersonController{
public ActionResult Show(string uniqueId)
{
//get data from database
var personData = GetPersonDataFromDatabase(uniqueId);
return View("PersonView", new PersonViewModel(personData));
}
}
據說這是爲了顯示其具有_LayoutContent.cshtml的佈局PersonView.cshtml:
routes.MapRoute(
"Person",
"Person/Show/{uniqueId}",
new { controller = "Person", action = "Show", uniqueId = "" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional}
);
我PersonController執行如下而這又有一個_Layout.cshtml的佈局。
不幸的是,我無法看到的網頁....除非我參與的記錄下來。我不知道爲什麼有差別......
當我嘗試加載網頁時我沒有登錄,我發送到這個頁面:
http://mymachine:8083/?ReturnUrl=%2fPerson%2fShow%2fvXDwucay
當我看到什麼使用招發生,我可以看到,發生以下情況:
- 302,HTTP,mymachine上:8083 ,/ Person/Show/vXDwucay
- 200,HTTP,mymachine上:8038,/ RETURNURL =%2fPerson%2fShow%2fvXDwucay
對於HTTP 302,我可以看到它返回了以下內容:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/?ReturnUrl=%2fPerson%2fShow%2fvXDwucay">here</a>.</h2>
</body></html>
有人能請指出我可能導致此問題的正確方向?我感到很奇怪,登錄會導致路由工作。我相信我一定在做一些非常簡單的事情......或者我沒有找到適合這個問題的地方。