asp.net-mvc-4 - 在 mvc4 中使用多个同名的 html 助手

标签 asp.net-mvc-4

我有多个 html 助手。当我单击登录按钮时,我使用 jquery 禁用 user_register div,当我输入详细信息时,模型绑定(bind)器能够正确绑定(bind)用户名和密码,但是当我单击 Register 时,我禁用 user_login div 并启用 user_register div,当我仅输入详细信息时电子邮件和名字是模型 Binder 能够绑定(bind)的内容,而不是用户名和密码。这是因为我不止一次使用相同的 html 助手。如何处理这个。我有以下代码

<div class="user_login">
 <label>Email / Username</label>
   @Html.TextBoxFor(model => model.Email)
   <br />
   <label>Password</label>
   @Html.TextBoxFor(model => model.Password)                                       
    <br />    
     <div class="action_btns">
      <div class="one_half"><a href="#" class="btn back_btn"><i class="fa fa-angle-double-left"></i>Back</a>
      </div>
     <div class="one_half last">
      <input type="submit" style="border: none" name="action" class="btn btn_red" value="Login" />
      </div>
     </div>
     <a href="#" class="forgot_password">Forgot password?</a>
  </div>
  <div class="user_register">
    <label>Full Name</label>
     @Html.TextBoxFor(model => model.First_Name)<br />
     <label>Email Address</label>
     @Html.TextBox(model=>model.Email)<br />
      <label>User Name</label>
      @Html.TextBoxFor(model => model.User_Name)<br />
      <label>Password</label>
      @Html.TextBox(model=>model.Password") <br />
  </div>

Controller 跟随这里

public ActionResult Index(Customer customer, string Action)
{
 //something here
}

最佳答案

您还没有向您展示完整的 View ,但假设所有这些控件都是在一个表单元素内生成的,那么除非您禁用输入,否则所有控件都将回发。如果是这样,则第一个带有 name="Email" 的输入被绑定(bind),第二个被 DefaultModelBinder 忽略。 (因为第一个只是隐藏的,它的值可能是空的)。例如,您的脚本需要确保禁用登录部分中的 2 个输入

@Html.TextBoxFor(model => model.Email, new { id = "login-email" })

$('#login-email').prop('disabled', true);

注意 id 属性,这样您就可以选择正确的属性(并防止重复的 id 无效的 html。

另一种方法是创建 2 个单独的表单。

关于asp.net-mvc-4 - 在 mvc4 中使用多个同名的 html 助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27896805/

相关文章:

c# - 如何在MVC中从Controller动态创建多个ActionLink?

c# - 如何在 ASP.NET MVC 4 区域中正确使用 Html.ActionLink

c# - 使用 Oracle 数据库配置 ASP.NET MVC 4 应用程序

json - 使用 JSON 主体从 Fiddler 调用时,POST Web API 4 方法的参数为 null

asp.net-mvc - 使用 "RedirectToAction"从 Controller 重定向到哈希值

c# - 不支持每种类型的多个对象集。对象集 IdentityUsers' 和 Users 都可以包含类型的实例

jquery-ui - 选项卡 Jquery 1.9

c# - 安装 MySQL Connector .NET 后 ASP.Net MVC4 配置错误

asp.net-mvc-4 - Azure blob - 无法在 MVC 4 中的 blob 容器中显示图像存储

c# - 我应该使用异常来处理用户输入验证吗?