2010-05-04 38 views
3

我有一個包含usercontrol的視圖。在用戶控件使用呈現:.Net MVC UserControl - RenderPartial或EditorFor

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

我的問題是用戶控件從模型值呈現很好,但是當我發佈編輯的用戶控件,他們沒有被映射回Model.General 。我知道我可以在Request.Form中找到值,但我真的認爲MVC會設法將這些值映射回模型。

我的用戶:

<%@ 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> 

我使用的.Net MVC 2

感謝您的幫助!

+0

你是如何將價值發回模型的?通過輸入? – Ayo 2010-05-04 13:20:37

+0

是的,在一個輸入文本元素。看看我上面的代碼片段(<%= Html.TextBoxFor(model => model.Value)%>) – Andreas 2010-05-04 17:09:03

回答

2

問題解決!

我的用戶呈現有:

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

我的模型看起來是這樣的:

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

我的用戶控件放置在視圖 - > Shared-> EditorTemplates並命名爲 「GeneralViewModel.ascx」