コントローラーの別の部分ビュー内の複数の部分ビューの動的な数を返し、Ajax 呼び出しを使用してそれを DOM に挿入したいと考えています。ユーザーはパッケージ (ラジオ ボタン) を選択します。このパッケージに応じて、ユーザーが入力する X 個のフォームを返す必要があります。
これは私のAjaxコードです:
$(function() {
var serviceURL = "/NewOrderRequestForms/GetFormsToCreateNewOrderRequest";
$(":radio").change(function() {
$.ajax({
url: serviceURL,
type: "POST",
data: { account: $("#AccountId").val(), serviceAvailabilityPackageId: $(":radio:checked").val() },
success: function(xhrData) {
populateNORForms(xhrData);
},
error: function() {
alert("error");
}
});
});
});
私のコントローラーメソッドは次のようになります。
public virtual ActionResult GetFormsToCreateNewOrderRequest(Guid account, int serviceAvailabilityPackageId)
{
var customerNumber = _authorizationUtil.GetAccount(account).CustomerNumber;
var result = _customFormService.GetFormsToCreateNewOrderRequest(customerNumber.Value,
serviceAvailabilityPackageId).Select(x => x.FormKey);
var forms = CustomFormUtil.GetCustomMetaPartial(result);
//I am confused here
//return PartialView(something)
}
CustomFormUtil.GetCustomMetaPartial(result)
IEnumerable<string>
たとえば、「form1、form3」または「form1、form2、form3、form6」などの1から6の文字列を返します。これを使用して、ビュー名とモデルの辞書を返し、最終的な部分ビューに追加します.
//Dictionary for Custom Meta Partialviews
public static Dictionary<string, CustomMetaPartialViewModel> CustomMetaPartial2 = new Dictionary<string, CustomMetaPartialViewModel>()
{
{"form1_v1", new CustomMetaPartialViewModel(MVC.Service.NewOrderRequestForms.Views.form1_v1, new form1_v1())},
{"form2_v1", new CustomMetaPartialViewModel(MVC.Service.NewOrderRequestForms.Views._form2_v1,new form2_v1())},
...
{"form7_v1", new CustomMetaPartialViewModel(MVC.Service.NewOrderRequestForms.Views._form7_v1,new form7_v1())}
};
私の質問は、モデルを含むこれらの部分ビューを別の大きな部分ビューに追加し、これをビューに戻すにはどうすればよいですか?