2010-05-04 7 views
3

J'ai une vue qui contient un usercontrol. Le usercontrol est rendu à l'aide:.Net MVC UserControl - RenderPartial ou EditorFor

<% Html.RenderPartial("GeneralStuff", Model.General, ViewData); %> 

Mon problème est que le usercontrol rend bien avec les valeurs du modèle, mais quand je poste valeurs édité dans le usercontrol ils ne sont pas mis en correspondance retour à Model.General . Je sais que je peux trouver les valeurs dans Request.Form mais je pensais vraiment que MVC parviendrait à retranscrire ces valeurs dans le modèle.

Mon usercontrol:

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

<fieldset>   
    <div> 
     <%= Html.LabelFor(model => model.Value)%> 
     <%= Html.TextBoxFor(model => model.Value)%>    
    </div> 
</fieldset> 

J'utilise .Net MVC 2

Merci pour toute aide!

+0

? à travers une entrée? – Ayo

+0

Oui, dans un élément de texte d'entrée. Voir mon extrait de code ci-dessus (<% = Html.TextBoxFor (model => model.Value)%>) – Andreas

Répondre

2

Problème résolu!

Mon usercontrol est rendu avec:

<%= Html.EditorFor(model => model.General); %> 

Mon modèle ressemble à ceci:

public class TestEditViewModel 
{ 
    [UIHint("GeneralViewModel")] 
    public GeneralViewModel General { get; set; } 
} 

Et mon UserControl est placé sous vues-> shared> EditorTemplates et nommé "GeneralViewModel.ascx" Comment essayeriez-vous de renvoyer la valeur au modèle