html helper - 如何去掉 name 属性?
html helper - how do I get rid of the name attribute?
我有一个强类型的局部视图。该模型有一个 属性,它是 Active Directory 中的用户列表,由一个名为 ADUser
.
的 class 表示
我有一个部分视图代表此 属性 的下拉列表。虽然我将这个下拉列表的值用于其他一些事情,但我不需要提交它的值,所以我想我应该删除 name 属性。然而,一旦 Html 加载,name 属性总是设置为 Html 助手想要分配给它的。有没有一种方法可以删除该属性,以便不提交下拉列表的值?
在我的主要部分视图中(_adusers 是列表的名称):
<%: Html.Partial("ADUserDropDown", Model._adusers)%>
在我的下拉列表的部分视图中:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<MyProject.Models.ADUser>>" %>
<%= Html.DropDownList("", new SelectList(Model, "ValueText", "DisplayText"), new { name = "", size = "12" })%>
<input type=button value="Search..." />
<input type=button value="Close" />
这导致:
<select name="_master" size="12">
_master 是父模型的名称。如果我在 Html.DropDownList
的第一个参数中添加一些内容,结果是:
<select name="_master.WhateverINamedIt" size="12">
我想达到:
<select size="12">
那么使用 HTML 助手就没有意义了。您可以将局部视图的代码更改为:
<select size="12">
@foreach(var item in Model)
{
<option value="@item.ValueText">@Html.DisplayFor(m => item.DisplayText)</option>
}
</select>
但是,如果您想坚持使用 DropDownList
助手,html 属性中的名称参数必须使用 大写字母 指定:
<%= Html.DropDownList("", new SelectList(Model, "ValueText", "DisplayText"),
new { Name = string.Empty, size = "12" })%>
作为替代方案,您可以使用 jQuery:
删除名称
$('[name="_master.WhateverINamedIt"]').removeAttr('name');
不喜欢或不使用 jQuery,普通的 javascript 就可以了:
document.getElementsByName('_master.WhateverINamedIt')[0].removeAttribute('name');
我有一个强类型的局部视图。该模型有一个 属性,它是 Active Directory 中的用户列表,由一个名为 ADUser
.
我有一个部分视图代表此 属性 的下拉列表。虽然我将这个下拉列表的值用于其他一些事情,但我不需要提交它的值,所以我想我应该删除 name 属性。然而,一旦 Html 加载,name 属性总是设置为 Html 助手想要分配给它的。有没有一种方法可以删除该属性,以便不提交下拉列表的值?
在我的主要部分视图中(_adusers 是列表的名称):
<%: Html.Partial("ADUserDropDown", Model._adusers)%>
在我的下拉列表的部分视图中:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<MyProject.Models.ADUser>>" %>
<%= Html.DropDownList("", new SelectList(Model, "ValueText", "DisplayText"), new { name = "", size = "12" })%>
<input type=button value="Search..." />
<input type=button value="Close" />
这导致:
<select name="_master" size="12">
_master 是父模型的名称。如果我在 Html.DropDownList
的第一个参数中添加一些内容,结果是:
<select name="_master.WhateverINamedIt" size="12">
我想达到:
<select size="12">
那么使用 HTML 助手就没有意义了。您可以将局部视图的代码更改为:
<select size="12">
@foreach(var item in Model)
{
<option value="@item.ValueText">@Html.DisplayFor(m => item.DisplayText)</option>
}
</select>
但是,如果您想坚持使用 DropDownList
助手,html 属性中的名称参数必须使用 大写字母 指定:
<%= Html.DropDownList("", new SelectList(Model, "ValueText", "DisplayText"),
new { Name = string.Empty, size = "12" })%>
作为替代方案,您可以使用 jQuery:
删除名称$('[name="_master.WhateverINamedIt"]').removeAttr('name');
不喜欢或不使用 jQuery,普通的 javascript 就可以了:
document.getElementsByName('_master.WhateverINamedIt')[0].removeAttribute('name');