0

最初に - 私の壊れた英語で申し訳ありません。ばかげた質問かもしれませんが....だから、私はモデルを持っています

public class AAAModel {
  public int I1 {get; set}
  public string S1 ...
  public Guid G1 ...
}

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

public ActionResult Create(AAAModel WhatToCreate){
  ...
}

そして、データを入力するための適切なビューがあります...すべて問題ありませんでしたが、ビューを再編成していくつかのフォームを作成し、ユーザーが新しいオブジェクト (モデル) を動的に作成してクエリをサーバーに送信できるようにする必要があります。サーバーから取得したデータは、Ajax クエリとして取得され、テーブル グリッドに解析されます。ユーザーはこのデータを表示し、修正して送り返すことができます。だから、私は最初のビューから複製し、コントロールの ID と名前を変更するいくつかのフォームを作成します。

@Html.TextBoxFor(model => model.I1)
@Html.TextBoxFor(model => model.S1)
@Html.TextBoxFor(model => model.G1)

そして今、それは次のようになりました

<input id="I1_1" name="I1_1 ...>
<input id="S1_1" name="S1_1 ...>
<input id="G1_1" name="G1_1 ...>

フォーム1で;

<input id="I1_2" name="I1_2 ...>
<input id="S1_2" name="S1_2 ...>
<input id="G1_2" name="G1_2 ...>

フォーム2など... ばかげた質問ですが、コントローラーを変更するにはどうすればよいですか、またはこれらの値を取得するにはどうすればよいですか?

PSこれらのフォームはajax経由で送信されます...そしてホストページはリロードされません。

4

2 に答える 2

0

あなたの質問を正しく理解しているかどうかはわかりません。そして、あなたがこれを行っていて機能していないかどうかを確認してください。しかし、ページに複数のフォームを作成するだけではどうですか。したがって、ユーザーが特定のフォームを送信すると、そのフォームの入力のみが送信されます。

@using (Html.BeginForm("Method","Controller",FormMethod.Post,new {id="form1"}))
{
  @Html.TextBoxFor(model => model.I1)
  @Html.TextBoxFor(model => model.S1)
  @Html.TextBoxFor(model => model.G1)
  <input type="submit" name="submitButton" id=form1Submit />
}
@using (Html.BeginForm("Method","Controller",FormMethod.Post,new {id="form2"}))
{
  @Html.TextBoxFor(model => model.I1)
  @Html.TextBoxFor(model => model.S1)
  @Html.TextBoxFor(model => model.G1)
  <input type="submit" name="submitButton" id=form2Submit />
}
...

もちろん、これを動的に作成します。質問を繰り返しているだけで申し訳ありません

編集

問題が送信されたデータのセットを判断する方法である場合、モデルに id フィールドを追加し、作成する新しいフォームごとに変更します

于 2012-10-16T04:34:01.190 に答える
0

こちらをご覧ください: http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/およびこちら: http://haacked.com/アーカイブ/2008/10/23/model-binding-to-a-list.aspx

アップデート

FormCollectionを使用して、渡されたモデル値をいつでも取得できます。

[HttpPost]
public ActionResult MyAction(FormCollection values) 
{
   string I1_2 = values["I1_2"];    
   //do something
}

必要に応じて動的オブジェクトを指定して作業できますが@model dynamic、ビューのデフォルトは から派生するため、その必要はありませんWebViewPage<dynamic>

匿名オブジェクトを渡す必要がある場合は、こちらも ご覧ください https://stackoverflow.com/a/5670899/1241400

于 2012-10-15T20:16:21.450 に答える