gpt4 book ai didi

asp.net-mvc-4 - 预加载和禁用 EditorFor

转载 作者:行者123 更新时间:2023-12-02 22:02:51 24 4
gpt4 key购买 nike

我正在使用 MVC4 进行一些练习。我的实践项目是一种简单的评论板/论坛,允许注册用户和匿名用户发表评论。

目前,我已经设置了我的代码,这样即使是注册用户也可以在提交小名称 + 消息表单时输入他们想要的任何名称。我想要的是为注册用户禁用此行为,而不是使用从他们的登录信息中获取的用户名。

理想情况下,注册用户的名称框已经加载了他们的用户名并且不可编辑。当表单通过验证时将使用此用户名,以确保名称和消息都不为空。

这是我在 View 中的代码:

<div class="editor-label">
@Html.LabelFor(x => x.comment.Name)
</div>
<div class="editor-field">
@Html.ValidationMessageFor(x => x.comment.Name)
<br />
@if (User.Identity.Name=="") {
@Html.EditorFor(x => x.comment.Name)
} else {
@Html.EditorFor(x => x.comment.Name, Model.PosterName)
}
</div>

请注意,Model.PosterName 仅将用户的用户名作为字符串保存。它不是 null 或空的。

如何编辑第二个 EditorFor 行,以便使用 Model.PosterName 作为默认选项?我是否应该使用 DisplayFor 来代替不可编辑的行为?

我上面写的代码没有用任何值填充 EditorFor。

谢谢!

最佳答案

您为新评论传递到 View 中的模型应该将 comment.Name 设置为您想要的任何值。你可以在你的 Controller 中做到这一点。如果您可以发布您的 Controller 代码,我将能够为您提供您需要添加的确切代码。

如果您想在 View 中禁用此输入字段,请执行以下操作:

@Html.TextBoxFor(x => x.comment.Name, new { @disabled = "disabled" } )

如果您知道它是一个文本框,则无需使用 EditorFor。使用 TextBoxFor 可以像上面那样指定 html 属性。

关于asp.net-mvc-4 - 预加载和禁用 EditorFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595189/

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