gpt4 book ai didi

asp.net-mvc-4 - ASP.NET MVC 路由配置将 Http 302 对象移至

转载 作者:行者123 更新时间:2023-12-02 09:14:03 25 4
gpt4 key购买 nike

我认为我的 MVC 路由可能遇到了一些问题。请注意,我将 ASP.NET MVC 4 与 Razor View 一起使用。

我的路线注册如下:

    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 布局,而 _LayoutContent.cshtml 又具有 _Layout.cshtml 布局。

不幸的是,我无法看到该页面...除非我已登录。而且我不知道为什么这会产生影响...

当我在未登录的情况下尝试加载页面时,我会被发送到此页面:

http://mymachine:8083/?ReturnUrl=%2fPerson%2fShow%2fvXDwucay

当我使用 Fiddler 查看发生的情况时,我可以看到发生了以下情况:

  1. 302、HTTP、mymachine:8083、/Person/Show/vXDwucay
  2. 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>

有人能给我指出可能导致此问题的正确方向吗?我觉得很奇怪,登录后路由就可以工作。我确信我一定做错了一些非常简单的错误......或者我没有在正确的位置寻找问题。

最佳答案

我终于找到了解决我的问题的方法。我能够将我的问题追溯到特定的修订版......并且在长时间盯着代码之后终于能够顿悟解决方案。

我在这里发布解决方案,以防其他人将来遇到此问题。

在“PersonView”中,我显示了一个部分 View ,该 View 返回一些数据,如下所示:

@Html.Action("SomeListPartial", "Other")

当我读到这篇文章时,我错误地认为这是 @Html.ActionLink 方法,它只是提供了一个页面的超链接......@Html.Action 方法而不是“调用指定的子元素” action 方法使用指定的 Controller 名称并以 HTML 字符串形式返回结果。” ...这意味着它执行操作并返回结果 html 以在屏幕上显示。

当我查看被调用的操作时,发现我(正确)在其上放​​置了 [Authorized] 属性...这就是为什么它在未登录时失败的原因。

现在我不完全确定为什么错误不那么明显......但我认为我的网站中一定埋有一些东西可以进行重定向,这就是为什么我被自动带到 ?ReturnUrl=% 2fPerson%2fShow%2fvXDwucay

关于asp.net-mvc-4 - ASP.NET MVC 路由配置将 Http 302 对象移至,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com