Может кто-нибудь, пожалуйста, помогите мне с тем, что я делаю неправильно. У меня есть частичное представление, в котором есть данные клиента. Который заполнен из родительского представления. Теперь я должен отправить эту форму. Но когда я собираюсь это сделать, он отправляется, но получает данные модели пустыми. Данные формы не могут сериализоваться.
Ниже приведен мой частичный код просмотра: -
@model MobileBank.Models.CustomerDetails;
@{
List<SelectListItem> list = ViewBag.Schemes;
var str = string.Join(",",list.Where(p => ("," + Model.Schemes + ",").Contains("," + p.Text + ",")).OrderBy(i => Model.Schemes.Split(',').ToList().IndexOf(i.Text)).ToList().Select(s => s.Text));
}
<div class="box-body" style="margin-top: 2%;">
@using (Html.BeginForm("CreatePIN", "RegisterCustomer", FormMethod.Post, new { id = "customerDetailForm" }))
{
Html.RenderPartial("_ShowMessages");
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="row">
<div class="col-xs-2">
@Html.LabelFor(model => model.fincif)
</div>
<div class="col-xs-4">
@*@Html.TextBoxFor(model => model.fincif, new { disabled = "disabled", @readonly = "readonly", id = "CIF" })*@
@Html.EditorFor(model => model.fincif, new { htmlAttributes = new { @class = "form-control", disabled ="disabled", @readonly = "readonly", id = "CIF", style= "margin-bottom:8px;" } })
</div>
<div class="col-xs-2">
@Html.LabelFor(model => model.Name)
</div>
<div class="col-xs-4">
@*@Html.TextBoxFor(model => model.Name, new { id = "Name", disabled = "disabled", @readonly = "readonly" })*@
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "Name" } })
</div>
</div>
<div class="row">
<div class="col-xs-2">
@Html.LabelFor(model => model.DOB)
</div>
<div class="col-xs-4">
@*@Html.TextBoxFor(model => model.DOB, new { id = "DOB", disabled = "disabled", @readonly = "readonly" })*@
@Html.EditorFor(model => model.DOB, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "DOB" } })
</div>
<div class="col-xs-2">
@Html.LabelFor(model => model.MobileNo)
</div>
<div class="col-xs-4">
@*@Html.TextBoxFor(model => model.MobileNo, new { disabled = "disabled", @readonly = "readonly", id = "MobileNo" })*@
@Html.EditorFor(model => model.MobileNo, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "MobileNo" } })
</div>
</div>
<div class="row">
<div class="col-xs-2">
@Html.LabelFor(model => model.Address1)
</div>
<div class="col-xs-4">
@*@Html.TextBoxFor(model => model.Address1, new { id = "Address1", disabled = "disabled", @readonly = "readonly" })*@
@Html.EditorFor(model => model.Address1, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "Address1" } })
</div>
</div>
<div class="row">
<div class="col-xs-2">
@Html.LabelFor(model => model.Schemes)
</div>
<div class="col-xs-4">
@if (Model.Schemes != null)
{
@*@Html.TextBox("Schemes",str,new { disabled = "disabled", @readonly = "readonly", id = "Schemes" })*@
@Html.EditorFor(model => str, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "Schemes" } })
}
else
{
@*@Html.TextBoxFor(model => model.Schemes, new { disabled = "disabled", @readonly = "readonly", id = "Schemes" })*@
@Html.EditorFor(model => model.Schemes, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly", id = "Schemes" } })
}
</div>
</div>
<div class="row divMargin">
<div class="col-xs-offset-3 col-xs-6 text-center">
<button type="submit" id="btnCreatePin" class="btn btn-primary" style="margin: 2%;">Create PIN</button>
<input type="button" class="btn btn-default" onclick="javascript:return GoBack();" value="Cancel" />
</div>
</div>
}
</div>
<script type="text/javascript">
$('form').submit(function (e) {
debugger;
e.preventDefault();
if ($(this).valid()) {
$.ajax({
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'),
data: $(this).serialize(),
success: function (response) {
//$('#customerData').html(response);
//$('#crtPIN').show();
HideWait();
},
error: function (jqXHR, exception) {
toastr.error('Error while processing your request');
HideWait();
}
});
}
});
</script>
Метод, которому я хочу опубликовать данные формы, как показано ниже: -
[HttpPost]
[ValidateAntiForgeryToken]
[TypeFilter(typeof(Authorize))]
public async Task<ActionResult> CreatePassword(CustomerDetails model)
{
try
{
//Work to do..
}
catch (Exception ex)
{
CatchError(ex);
}
return View();
}
In Below Image, когда Я ввожу номер CIF и номер мобильного телефона и отправляю, ниже приведен список загрузки. которая является формой в частичном представлении. То, что мне нужно представить при создании, нажмите кнопку «Отправить». Но я не получаю данных