Dou*_*ain 7 razor asp.net-mvc-3
为什么Html.ActionLink不能在下面的代码中工作?这是app_code文件夹中的一个页面,我试图从index.cshtml调用它
LogOnUserControl.cshtml
@helper DisplayUserControl(){if(Request.IsAuthenticated){
<span>Welcome <strong>@User.Identity.Name</strong>!</span>
<span>[ {@Html.ActionLink("","","")} ]</span>
}
else {
<span>[{@Html.ActionLink("","","") }]</span>
}
}
Run Code Online (Sandbox Code Playgroud)
这是index.cshtml的代码行.调用本身是有效的,如果我删除Html.ActionLink语句,网站加载正常.难道你不能在这样的嵌套页面中使用它们吗?我还能如何生成动态链接?
index.cshtml
@LogOnUserControl.DisplayUserControl()
这个动作链接有什么想法?为什么要将空字符串作为参数传递?我想你想生成SignIn,SignOut链接,不是吗?
此外,如果您想在放入App_Code文件夹的共享助手中使用HTML助手,则需要将它们作为参数传递,因为它们不可用:
@using System.Web.Mvc.Html
@helper DisplayUserControl(System.Web.Mvc.HtmlHelper html) {
if (html.ViewContext.HttpContext.User.Identity.IsAuthenticated) {
<span>
Welcome
<strong>
@html.ViewContext.HttpContext.User.Identity.Name
</strong>
!
</span>
<span>[@html.ActionLink("SignOut", "Login")]</span>
}
else {
<span>[@html.ActionLink("SignIn", "Login")]</span>
}
}
Run Code Online (Sandbox Code Playgroud)
并致电帮助者:
@LogOnUserControl.DisplayUserControl(Html)
Run Code Online (Sandbox Code Playgroud)
我个人从不使用这样的助手(你放在App_Code文件夹中的助手).当你有部分视图,编辑/显示模板和Html.Action助手时,看不到任何用途.
例如,您可以定义partial(~/Views/Shared/_LogOnUserControl.cshtml):
@if (User.IsAuthenticated) {
<span>
Welcome
<strong>
@User.Identity.Name
</strong>
!
</span>
<span>[@Html.ActionLink("SignOut", "Login")]</span>
}
else {
<span>[@Html.ActionLink("SignIn", "Login")]</span>
}
Run Code Online (Sandbox Code Playgroud)
你将在你的布局中包括:
@Html.Partial("_LogOnUserControl")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5971 次 |
| 最近记录: |