Я думаю, что у меня могут быть проблемы с моей маршрутизацией MVC. Заметьте, я использую ASP.NET MVC 4 с Razor Views.Конфигурация маршрутизации ASP.NET MVC, предоставляющая объект Http 302, перенесенный в
У меня есть мои маршруты зарегистрированы следующим образом:
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 реализуется следующим образом:
[HandleError]
public class PersonController{
public ActionResult Show(string uniqueId)
{
//get data from database
var personData = GetPersonDataFromDatabase(uniqueId);
return View("PersonView", new PersonViewModel(personData));
}
}
Это должно отображать PersonView.cshtml, который имеет расположение _LayoutContent.cshtml который, в свою очередь, имеет макет _Layout.cshtml.
К сожалению, я не могу увидеть страницу .... если я не вошли. И я понятия не имею, почему это делает разницу ...
При попытке загрузить страницу, если Я не авторизованы Я послан на эту страницу:
http://mymachine:8083/?ReturnUrl=%2fPerson%2fShow%2fvXDwucay
Когда я смотрю на то, что происходит с помощью Fiddler я могу видеть, что происходит следующее:
- 302, HTTP, MyMachine: 8083 ,/Person/Show/vXDwucay
- 200, HTTP, моя_машина: 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>
Может кто-то пожалуйста, укажите мне в правильном направлении, что может быть причиной этой проблемы? Мне странно, что вход в систему заставляет маршрут работать. Я уверен, что я должен делать что-то действительно просто неправильно ... или я не ищу подходящего места для проблемы.