2009-11-03 6 views
0

J'ai un formulaire ASP.NET MVC pour ajouter un module à un site. La vue a un ViewModel fortement typé avec les propriétés "Nom" et "Contenu". Sur ce formulaire, j'ai un sous-formulaire pour ajouter une section au module. Le sous-formulaire comporte des champs intitulés «Nom» et «Contenu» lorsqu'ils s'appliquent à l'objet section. Malheureusement, pour moi, les fonctions d'aide HTML intégrées semblent relier automatiquement ces champs aux valeurs de propriété correspondantes sur le modèle de vue, même si elles sont destinées à s'appliquer à un objet complètement différent.Effet secondaire inattendu de HtmlHelpers dans ASP.NET

classes Exemple:

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;} 
    // ... 
} 

Forme:

<%@ 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" /> 
<%}%> 

Je suppose que les entrées Nom et contenu commencent vide, mais les aides html semblent être prebinding au modèle de vue de la page sans ma direction. Comment puis-je arrêter ça ...

Répondre

1

essayer de mettre <%=Html.TextBox("Name",string.Empty)%> pour forcer la zone de texte à être vide

+0

Haha si flippin simple. Je suis un cancre. :( – Chris

Questions connexes