2011-02-01 9 views
2

私はmvc3に問題があります。私は、特にmvc3ですが、私は現在、それを剃刀エンジンで使っています。とにかく、私が直面している問題は、私はフォームを持っている、私はそれをレンダリングするTextBoxFor、CheckBoxForなどを使用しています。レンダリングは完璧に機能していますが、データをポストしようとすると、基本的にnull値の空のフォームがポストされます。ここでhtmlヘルパーを使用している時の値はありません

は私のモデルである:

public class SendReplyPmForm : PM 
{ 
    public new string Text { get; set; } 

    public bool IsOriginalDelete { get; set; } 

    public int ReplyNr { get; set; } 

    public string ReceiverName { get; set; } 
} 

私はビューとモデルの間に余分のviewmodel層を持っており、それはここ

public class IndexViewModel 
{ 
    public SendReplyPmForm SendReplyPmForm { get; set; } 
     ... 

このモデルに関する余分のparamaterが私の見解は

で含まれてい
@using (Html.BeginForm("SendReply", "Pm", FormMethod.Post, new { id = "formSendMsg" })) 
{ 
      @Html.TextBoxFor(model => model.SendReplyPmForm.ReceiverName, new { id = "ReceiverName" }) 
      <span id="spanChkText">Delete Original Message: @Html.CheckBoxFor(model => model.SendReplyPmForm.IsOriginalDelete, new { id = "chkIsOriginalDelete", value = 1 })</span> 

    @{Html.RenderPartial("~/Areas/Forums/Views/Shared/Toolbar.cshtml");} 

     <span class="spanLabel">Message</span> 
      @Html.TextAreaFor(model => model.SendReplyPmForm.Text, new { id = "Text", rows = "10", cols = "65" }) 

    @{Html.RenderPartial("temp.cshtml");} 

    @Html.HiddenFor(model => model.SendReplyPmForm.ReplyNr, new { id = "inputReplyNr", value = 0 }) 

     <input type="submit" value="Send" /> 

} 

ここに私はコントローラーを持っています

奇妙なことは、HTMLヘルパーの代わりに純粋なHTMLを使用すると、投稿は問題なくスムーズに進んでいることです。

私はこれを投稿する前にこの記事(ASP.NET MVC’s Html Helpers Render the Wrong Value!)を読んだが、私は同じ問題を抱えているとは確信していません。 (私のコントローラには同じ名前のアクションがありませんが)純粋なHTMLで作業しているという事実も私の考えになります。

あなたはどなたか考えていますが、このフォームをHtmlヘルパーでどのように使用できますか?

答えて

3

私はあなたが接頭辞を追加する必要があるので、あなたの問題はhereと同じであると信じて:

[HttpPost] 
public ActionResult SendReply([Bind(Prefix="SendReplyPmForm")]SendReplyPmForm SendReplyForm) 
{ 
    ... 
} 
+0

うん、それは1、歓声=でした) – JahManCan

関連する問題