3

ユーザーコントロールを含むビューがあります。ユーザーコントロールは次を使用してレンダリングされます。

<% 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を使用しています

助けてくれてありがとう!

4

1 に答える 1

2

問題が解決しました!

私のユーザーコントロールは次のようにレンダリングされます:

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

私のモデルは次のようになります。

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

そして、私のユーザーコントロールは Views->Shared->EditorTemplates の下に配置され、「GeneralViewModel.ascx」という名前が付けられます

于 2010-05-05T12:05:09.653 に答える