2012-04-29 6 views
1

私のMVC3カミソリビューには、「GetRecords」ボタンが1つあります。このボタンをクリックすると、複数のレコードセットが返されます。レコードセットの数は、ビューを動的に再生成し、レコードの各セットを表示します。また、各レコードセットに対して「保存」および「削除」ボタンを生成し、ユーザーが各レコードセットをレビューし、これらのレコードセットのいずれかからデータを削除します。あなたは、その後で、フォームからの複数のボタンを処理したい場合、私はそれはあなたが達成しようとしている何であるかはかなりよく分からないが、どのように、ここで.ANY提案MVC3カミソリ動的に作成された各ボタンセットのボタンクリックを処理する方法

[Httppost] 
public ActionResult GetRecords(ContentsViewModel vmodel) 
     { 
     vmodel.GetRecords(); 

     return view(vmodel); 
    } 

答えて

0

をボタンクリックを処理するために、ここで

は私の質問それぞれのボタンに名前を付ける必要があるビューです。

@using (Html.BeginForm()) 
{ 
    ... 
    <input type="submit" value="Get Records" name="getrecords"/> 
    <input type="submit" value="Save" name="save"/> 
    <input type="submit" value="Delete" name="delete"/> 
} 

そして、あなたが使ってPOSTアクションでこれらの値をテストすることができます:たとえば

[HttpPost] 
public ActionResult AppropriateActionNameHere(ContentsViewModel vmodel) 
{ 
    if (!string.IsNullOrEmpty(Request["getrecords"])) 
    { 
     vmodel.GetRecords(); 
    } 
    else if(!string.IsNullOrEmpty(Request["save"])) 
    { 
     //save record processing here 
    } 
    else if(!string.IsNullOrEmpty(Request["delete"])) 
    { 
     //delete record processing here 
    } 
    return View(vmodel); //Or perform the appropriate redirect or whatever you need to perform 
} 

別のpossiblityは、背面に各フォームのポストビューにmutlipleのフォームを持っているだろう異なる行動。

関連する問題