【发布时间】:2017-09-22 07:21:28
【问题描述】:
在 ASP.net MVC5 视图中,我想检查用户是否已登录,以便我可以将用户名分配给控件,或者如果他未登录,则只分配“Guest”。
问题是我无法设置值,因为我总是遇到错误 - “错误 CS1061 'MvcHtmlString' 不包含 'val' 的定义并且没有扩展方法 'val' 接受第一个参数可以找到类型“MvcHtmlString”(您是否缺少 using 指令或程序集引用?)”
脚本如下。
如何正确访问控件,设置值或将其设置为只读?
提前致谢!
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(document).ready(function () {
@{var usr = System.Web.HttpContext.Current.User.Identity.Name;
if (@User.Identity.Name != "")
{
usr = User.Identity.Name;
}
else
{
usr = "Guest";
}
}
@Html.IdFor(model => model.UserCri).val(usr);
@Html.IdFor(model => model.UserCri).attr("readonly", "readonly");
</script>
}
【问题讨论】:
-
@Html.IdFor不会生成表单控件(它只是输出一个值,该值将用于根据属性名称生成id属性 - 在您的情况下为UserCri) -
不清楚你想做什么,但你不需要脚本——你可以做
@if (User.Identity.Name != "") { <div>@User.Identity.Name<div> } else { <div>Guest</div> } -
您好斯蒂芬,感谢您的帮助。 Win下面的回复正是我想要的!谢谢!
-
您到底为什么要为此使用javascript! (无论如何用户名都不应该在表单控件中)
标签: asp.net-mvc razor