2015-02-11 63 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