2011-11-10 2 views
0

私は、データを投稿する際にページが更新されるように投稿するフォームを用意しています(ajax形式ではありません)。問題は本当に私はレコードのIDを掲示し、それをコントローラメソッドで抽出したいだけです。私はフォームがすべてを投稿していることを発見しています(同じフォームが更新に使用されているため、解決できない可能性があります)。しかし、FormCollectionから抽出するのではなく、コントローラメソッドのパラメータに変数popを持たせたいと思っています。私は以下のさまざまなパラメータを試しましたが、すべてnullになりました。何が問題なのか?Mvc ControllerメソッドのFormsCollection - その他のアクセス方法?

私は私のコントローラメソッドで次のようにあります

public ActionResult Delete(FormCollection collection) 
{ 
    var idToDelete = collection["Current.CommissionStructureId"].ToInt32(); 
} 

// tried the following but none of them bind 
public ActionResult Delete(int? Current_CommissionStructureId, int? CommissionStructureId, int? Id, int? id) 
{ 
    // none of the above are binding (set to null) 
} 
+0

私はそれを行う方法を知らないどのような問題を別のフォーム/リンクを削除するには?シンプルなソリューションとして、フォームにCommissionStructureIdという名前のフィールドを追加することができます。 –

答えて

0

あなたはレコードのみ

@using (Html.BeginForm()) { 
    <input type="hidden" name="CommissionStructureId" value="@item.CommissionStructureId" /> 
    <p> 
    <input type="submit" value="Delete" /> 
    </p> 
    <p> 
    @Html.ActionLink("Back to List", "Index") 
    </p> 
} 

[HttpPost] 
public ActionResult Delete(int CommissionStructureId) 
{    
    CommissionStructure commissionStructure = db.CommissionStructures.Find(CommissionStructureId); 
    db.CommissionStructures.Remove(commissionStructure); 
    db.SaveChanges(); 
    return RedirectToAction("Index"); 
} 
0

フォーム値が命名されている場合Current.CommissionStructureIdデフォルトmodelbinderだけそれを結合するの削除のためにHttpPostを使用する必要がありますIdというプロパティを持つCurrentというクラスパラメータに追加します。

は、だからあなたのオプションは

または

modelbinderカスタムを書く1つのプロパティ Idで小さなクラスを作成し、パラメータの型として使用されています
関連する問題