JSON 文字列形式でフォーム データを取得していますが、モデル オブジェクトにバインドできません。
私の見解:
<div class="GenderaMale float_lt">
</div>
<div class="float_lt">@Html.RadioButtonFor(m => m.PersonalDetails.BasicDetails.Gender, "male", new { @style = "margin:10px;margin-top:15px;", id = "malegender" })
</div>
<div class="GenderaFemale float_lt" style="margin-left: 30px;">
</div>
<div class="float_lt">@Html.RadioButtonFor(m => m.PersonalDetails.BasicDetails.Gender, "Female", new { @style = "margin:10px;margin-top:15px;", id = "femalegender" })
</div>
<span class="float_lt" style="margin-right: 15px;
margin-top: 5px;">Amount</span>
<div class="rupee" style="float: left">
</div>
@Html.TextBoxFor(m => m.Amount, new { @class = "trackwidthtxt float_lt" })
<script type="text/javascript">
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$("#calculateNow").click(function () {
var viewmodel = $('#CalculateNowForm').serializeObject();
alert(viewmodel);
var data = JSON.stringify($('form').serializeObject())
alert(data);
var Parameters = '{"leadViewModel":' + data + '}';
alert(Parameters);
Events.OpenPopup(ApplicationRoot + '/Calculator/CalculateNow', '', 600, 750, "middle", "#E7F0F5", Parameters);
});
</script>
ここに私のモデルがあります:
public partial class LeadViewModel
{
public string Amount{ get; set; }
public PersonalDetailsViewModel PersonalDetails{ get; set; }
}
public partial class PersonalDetailsViewModel
{
public BasicDetailsViewModel BasicDetails{ get; set; }
}
public partial class BasicDetailsViewModel
{
public string Gender{ get; set; }
}
これが私のコントローラーです:
[HttpPost]
public ActionResult CalculateNow(LeadViewModel leadViewModel)
{
LeadViewModel leadmodel = leadViewModel;
return PartialView("ConfirmToCalculate",leadmodel);
}
私のJqueryコードの試行を親切に行ってください..私はコントローラのメソッドパラメータ、つまりleadViewModelでnull値を取得しています..助けてください..!!!