2015-02-11 51 views
0

我有一个强类型的局部视图。该模型具有属性,该属性是由名为ADUser的类表示的Active Directory中的用户列表。html助手 - 我该如何摆脱名称属性?

我有一个局部视图,代表此属性的下拉列表。虽然我将这个下拉列表的值用于其他一些事情,但我不需要提交它的值,所以我想我会删除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"> 

回答

1

没有使用HTML助手,那么点。如果你想坚持的DropDownList助手在HTML属性名称参数必须与大写字母指定

<select size="12"> 
@foreach(var item in Model) 
{ 
    <option value="@item.ValueText">@Html.DisplayFor(m => item.DisplayText)</option> 
} 
</select> 

但是:

<%= 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'); 
+0

感谢您的帮助! – Mike 2015-02-11 17:09:42

相关问题