2011-04-11 22 views
0

私は2つのグリッドを持つ2ページを持っています。asp.net mvc

私の最初のページに私は10の編集可能な行があります。 1つの次のボタンがあります。

編集した値を次のページの他の変数IDに保存するために、これらの10行の編集値を次のページに取得する必要があります。 ASP.NET MVCでの状況の

おかげ

答えて

3

最初のビューで<form>

// BeginForm will render a <form> around the rowmodel HTML 
using (Html.BeginForm('PostToMe', 'MyController')) { 
    foreach (RowModel row in Model) { 
     // HTML to render out a row 
    } 
} 

の内部あなたの編集可能な列は、各列のため

public class RowModel 
{ 
    // properties here 
} 
データを一致させる特性を有するビューのモデルタイプのインスタンスとして各列を送信さ

最後に、これらのタイプのコレクションをコントローラアクションに投稿します。例えば

public class MyController : Controller 
{ 
    [HttpPost] 
    public ActionResult PostToMe(IList<RowModel> rows) 
    { 
     // do something with rows 
    } 
} 
1

をこのタイプを使用するための最良の方法は何ですかページという概念はありません。コントローラ、アクション、およびビューがあります。だからあなたが話しているのは、コントローラのアクションに情報を送るビューを持つ方法です。まあ、いくつかの方法があります。あなたは、グリッド内の特定の行を選択したい場合は、あなたが発生する可能性が

<% using (Html.BeginForm("TargetAction", "SomeController")) { %> 
    ... some input fields, maybe in a grid, whatever 
    <input type="submit" value="GO" /> 
<% } %> 

:一つは、このビューでHTML <form>を生成する入力要素とそれを充填し、ターゲット・アクションにこのフォームのaction属性を指していることからなりますこのグリッドの各行にフォームを作成し、アイテムIDを非表示フィールドとして使用します。