2

既存の MVC ベースのアプリケーションでは、ViewModel を ProductViewModel として持つ Product ビューがあります。この ViewModel には、Product が持つことができるすべての基本的なプロパティ (Product Name、Type、Price など) があります。

このビューでのこの製品作成プロセスの目的は、顧客のリストを製品に関連付けることです (必須ではありません)。

ユーザーが関連付けられた顧客を選択するための顧客リストを取得するには、現在ボタンをクリックすると、リストを取得してテーブル内に表示するコントローラーアクションを要求する ajax 呼び出し (getCustomers) があり、この html はオンザフライで作成されます。 jQuery Ajax 呼び出し、

現在の実装では、製品ビューの POST アクションを実行中に、選択した ID がビュー モデルに入力されません。

目的は、選択した顧客 ID と製品の詳細を ViewModel に取得することです。

そうする方法はありますか?

4

1 に答える 1

0

私が理解できる最善の方法でそれに答えようとします。したがって、チェックボックスを含む「テーブル」を作成したと仮定すると、次のようになります。

<form>
<table>
  <tr><td><input type='checkbox' value='1' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='2' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='3' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='4' name='myCheckbox' />Some text</td></tr>
</table>
<input type="submit" />
</form>

ProductModel クラス内:

public class ProductModel
{
   // Define the property here.
   public int[] MyCheckbox { get; set; }

   // The constructor where you do the initialization
   public void ProductModel(int[] myCheckbox)
   {
      MyCheckbox = myCheckbox;
   }
}

コントローラーメソッドで:

[HttpPost]
public ActionResult SomeMethod(ProductModel productModel)
{
    foreach(int value in productModel.MyCheckbox)
    {
        // Your code here..
    }
}

チェックボックスの値をコントローラ メソッドの配列として取得します。

于 2013-07-01T12:47:58.257 に答える