gpt4 book ai didi

asp.net-mvc - 使用 HTML.ActionLink 的 ASP.net MVC site.master 链接

转载 作者:行者123 更新时间:2023-12-04 07:06:28 26 4
gpt4 key购买 nike

我的 site.master 中有以下代码对于菜单:

<ul id="menu">              
<li><%= Html.ActionLink("My Contact Info", "DetailsbyUserName/" + Html.Encode(Page.User.Identity.Name), "Users")%></li>
</ul>

当我将鼠标悬停在 URL 上时,我看到它指向:
http://site/Users/DetailbyUserName/[name]

which is correct.

The issue is that when I put a breakpoint in the Users controller class below:

public ActionResult DetailsbyUserName(string loginName)
{
UserInfo user = repo.GetUserByName(loginName);
return View(user);
}

看来 loginName参数总是 null .

有什么建议?

最佳答案

问题是您没有设置 Route 来指定名为“loginName”的参数。

我猜你的默认路由正在吞下你的请求,并试图将 [name] 值分配给一个名为“id”的参数。如果您将参数名称从“loginName”更改为“id”,我敢打赌它对您有用。

请记住,路由引擎将每个 URL 段映射到一个命名参数。默认路由看起来像:"{controller}/{action}/{id}" .如果你想有一个名为“loginName”的参数,你必须想出一个包含段 "{controller}/{action}/{loginName}" 的路由。 ,这与默认路由不同,因此默认路由没有首先匹配它。

关于asp.net-mvc - 使用 HTML.ActionLink 的 ASP.net MVC site.master 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056473/

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