2012-02-20 9 views
0

私の.cshtmlでは、私はいくつかのデータを描いています。それから、私はrepyテキストボックスと顧客サービススレッドに返信するためのボタンを持っています。経路の値はそのまま維持されます

@using (Html.BeginForm("Update", "CustomerServiceMessage", FormMethod.Post, new { id = 0 })) 
    ... 
} 

私が提出したとき、私はそれが私の更新actionmethodに当たったとき、私は私が返事ボックスの上に描かれた親サービスメッセージのIDを取得0を得ることはありません。だから私は電子メール/フォーラムスレッドのようなものですが、私はハードコード= 0では、更新メソッドは、(描画された)画面上に描いた親メッセージのIDを取得しています。

理由を特定できません。

答えて

5

私が提出したとき、私はそれが普通です私の更新アクションメソッド

に当たったとき、あなたはあなたのサーバーにこのIDを送信しない0を得ることはありません。

@using (Html.BeginForm(
    "Update",      // actionName 
    "CustomerServiceMessage",  // controllerName 
    FormMethod.Post,     // method 
    new { id = 0 }     // htmlAttributes 
)) 
{ 
    ...  
} 

、あなたは次のマークアップ(デフォルトルートを想定)になってしまった:あなたはちょうどHtml.BeginFormヘルパーのwrong overloadを使用

<form id="0" method="post" action="/CustomerServiceMessage/Update"> 
    ... 
</form> 

は、問題を参照してください?ここ

correct overloadです:(デフォルトルートを想定して)生成

@using (Html.BeginForm(
    "Update",      // actionName 
    "CustomerServiceMessage",  // controllerName 
    new { id = 0 },     // routeValues 
    FormMethod.Post,     // method 
    new { @class = "foo" }   // htmlAttributes 
)) 
{ 
    ...  
} 

<form method="post" action="/CustomerServiceMessage/Update/0"> 
    ... 
</form> 

を今、あなたはあなたのid=0内部に対応するコントローラのアクションを取得します。あなたのコードをより読みやすくするとC# 4.0 named parametersを使用してミスのこの種のを避けることができところで

@using (Html.BeginForm(
    actionName: "Update", 
    controllerName: "CustomerServiceMessage", 
    routeValues: new { id = 0 }, 
    method: FormMethod.Post, 
    htmlAttributes: new { @class = "foo" } 
)) 
{ 
    ...  
} 
+0

おかげで非常に多く、あなたは正しかったです。今では、もともと私は新しい{id = 0、class = "someClass"}を持っていたとは言及していませんでしたが、上記のあなたの返信ごとにこれを移動した後、今は0を取得して動作しますが、フォーマット)。 – PositiveGuy

+1

@CoffeeAddictを使用して、[正しいオーバーロード](http://msdn.microsoft.com/en-us/library/dd460542.aspx)を使用してください。 '@using(Html.BeginForm(" Update "、" CustomerServiceMessage "新しい{id = 0}、FormMethod.Post、新しい{@class = "foo"})){...} '。ドキュメントを読んだことはありませんか?または、呼び出しているメソッドのパラメータを示すVisual StudioのIntellisenseを参照してください。 –

+0

は本当にあなたの助けを今日ありがとう、ここに良いもの!多くを学んだ。 – PositiveGuy

関連する問題