我有一个文本框,我将其定义为

<%= Html.TextBox("Username", Model.Form.Username, 
        new { @class = "textbox", @disabled = "disabled" })%>

该行为定义为:

    [AcceptVerbs(HttpVerbs.Post)]
    [ValidateAntiForgeryToken]
    public ActionResult EditLogin(LoginForm post) {

        ...

        return View(model);
    }

当我发到这里时,Username将是空白的.所有其他属性都正确绑定,但如果我将@disabled="disabled"改为@readonly="readonly",用户名绑定正确,一切正常.

看起来模型绑定忽略了禁用字段中的值.有什么办法可以绕过这件事吗?我仍然需要字段的值才能绑定到模型.我可以使用只读,但更喜欢使用禁用,因此用户在视觉上很明显不能编辑该字段的值.

推荐答案

我相信被禁用的表单域不会提交任何内容.如果您有一个表单,并且禁用了该表单中的foo字段,则当您发布帖子时,该帖子将没有foo字段的值.这只是禁用HTML中的字段的本质,不是MVC问题.

Asp.net相关问答推荐

Visual Studio发布的网站得到错误类型JObject is not defined when page is load on server"''"

Asp.Net Core 创建一个控制器来使用 SendGrid 发送邮箱

$(document).ready 不工作

.Net Framework:w3wp.exe 中的异常

你能从请求变量中确定时区吗?

.NET 站点如何隐藏其文件的 .aspx 扩展名?

使用 C# 和 ASP.NET 从 Gmail/Hotmail/Yahoo 导入通讯簿

如何使用 javascript 获取 MVC 应用程序的基本 URL

在构建时自动停止/重新启动 ASP.NET 开发服务器

如何在 ASP.NET 中使用时区?

如何在集线器类之外获取 SignalR 用户连接 ID?

每月的每一天

从 ASP.NET 中的 POST 方法中检索数据

如何在asp.net mvc的html.actionlink中调用javascript函数?

使用 Moq 验证活动注册

OWIN 和 Katana,为什么要将应用程序与服务器解耦?

调查 Web.Config 重复部分原因的步骤

URL 路由、图像处理程序和潜在危险的 Request.Path 值

在 Asp.Net MVC 5 中获取登录用户的用户 ID

IE9 JavaScript 错误:SCRIPT5007:无法获取属性ui的值:对象为空或未定义