ASP.net MVC5 Razor - 设置值Html.IdFor

时间:2017-09-21 23:11:43

标签: asp.net-mvc razor

在ASP.net MVC5 View中,我想检查用户是否已登录,以便我可以将用户名分配给控件,或者只是“Guest”(如果他没有登录)。

问题是我无法设置值,因为我总是有错误 - “错误CS1061'MvcHtmlString'不包含'val'的定义,也没有扩展方法'val'接受第一个参数可以找到类型'MvcHtmlString'(您是否缺少using指令或程序集引用?)“

Te Script在下面。

如何正确访问控件,设置值还是将其设置为只读?

提前致谢!

@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>
}

1 个答案:

答案 0 :(得分:0)

您需要将Html Helper与jQuery代码混合使用。

<script type="text/javascript">
    $(function(){
        var usr = '@(User.Identity.IsAuthenticated ? User.Identity.Name : "Guest")';
        $('#@Html.IdFor(model => model.UserCri)').val(usr);
    });
</script>