2009-11-03 21 views
0

我有一個用於向模塊添加模塊的ASP.NET MVC窗體。該視圖具有強類型的ViewModel,其屬性爲「Name」和「Content」。在這個表單中,我有一個子表單用於爲模塊添加一個部分。該子表格具有標記爲「名稱」和「內容」的字段,因爲它們適用於該部分對象。然而,對我而言,不幸的是,內置的HTML幫助函數似乎將這些字段自動綁定到視圖模型上的匹配屬性值,即使它們旨在應用於完全不同的對象。ASP.NET中HtmlHelpers的意外副作用

實例類:

public class Module 
{ 
    public string Name {get;set;} 
    public string Content {get;set;} 
    // ... 
} 

public class Section 
{ 
    public string Name {get;set;} 
    public string Content {get;set;} 
    // ... 
} 

形式:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Module>" %> 

<!-- rest of page here --> 

<%using (var form = Html.BeginForm("AddSection", "Modules")){%> 

    <ul class="form"> 
     <li> 
      <label for="Number">Section Number:</label> 
      <%=Html.TextBox("Number", null, new { size=5, maxlength=5 })%> 
      <%=Html.ValidationMessage("Number")%> 
     </li> 
     <li> 
      <label for="Name">Section Name:</label> 
      <%=Html.TextBox("Name")%> 
      <%=Html.ValidationMessage("Name")%> 
     </li>   
     <li> 
      <div style="width: 75%;"> 
       <label for="Content">Section Content: (<a href="http://textile.thresholdstate.com" target="_blank">formatting help</a>)</label> 
       <%=Html.TextArea("Content", null, new { @class = "text-entry" })%> 
       <%=Html.ValidationMessage("Content")%> 
      </div> 
     </li> 
     <li> 
      <div style="width: 75%;"> 
       <label>Content Preview: (<a href="#" onclick="togglePreviewPane(true); return false;">Show/Hide</a>)</label> 
       <div id="PreviewBox" class="black-border text-entry">&nbsp;</div> 
      </div> 
     </li> 
    </ul> 

    <input type="hidden" id="ModuleID" name="ModuleID" value="<%=Model.ID%>" /> 
    <input type="submit" id="SubmitButton" name="SubmitButton" value="Add Section" /> 
<%}%> 

我期望的名稱和內容的輸入開始時的空白,但是HTML傭工似乎預綁定到頁面的瀏覽模式不我的方向。我怎樣才能阻止這個...

回答

1

嘗試把<%=Html.TextBox("Name",string.Empty)%>迫使文本框爲空

+0

哈哈所以弗利簡單。我是一個笨蛋。 :( – Chris 2009-11-03 19:53:34