Sli*_*nky 4 razor asp.net-mvc-3
我需要在这个链接中添加一个类:
@Html.ActionLink("Sign Out", "LogOff", "Account")
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
@Html.ActionLink("Sign Out", "LogOff", "Account",new{@class="btn blue"})
Run Code Online (Sandbox Code Playgroud)
该链接指向Home控制器,而不是Account控制器因此抛出404.
/Home/LogOff?Length=7
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢
Dar*_*rov 16
尝试使用帮助程序的正确重载ActionLink(是的,有超重量的gazillions):
@Html.ActionLink(
"Sign Out", // linkText
"LogOff", // actionName
"Account", // controllerName
null, // routeValues
new { @class = "btn blue" } // htmlAttributes
)
Run Code Online (Sandbox Code Playgroud)
而你正在使用:
@Html.ActionLink(
"Sign Out", // linkText
"LogOff", // actionName
"Account", // routeValues
new { @class = "btn blue" } // htmlAttributes
)
Run Code Online (Sandbox Code Playgroud)
看看为什么你的代码不起作用?
是的,微软对这些超载做了一团糟,如果你不小心,你会陷入陷阱.
解决方案:读取MSDN或使用Visual Studio Intellisense(F12当光标位于ActionLink帮助程序上时).
出于这个原因,我更喜欢使用C#4.0命名参数以模式显式方式编写它:
@Html.ActionLink(
linkText: "Sign Out",
actionName: "LogOff",
controllerName: "Account",
routeValues: null,
htmlAttributes: new { @class = "btn blue" }
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3769 次 |
| 最近记录: |