你可以使用return PartialView()来渲染其他页面时第一页是正确submitted.And注意的是, input的类型应该是button不能submit 。
这是一个简单的解决方法,如下所示:
1.型号
public class NameInfo
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string StreetName { get; set; }
public int ApartmentNumber { get; set; }
}
2._partialNameInfo.cshtml:
3._partialAddressInfo.cshtml:
@model Address
@Html.DisplayNameFor(model => model.StreetName)
@Html.DisplayNameFor(model => model.ApartmentNumber)
@Html.DisplayFor(model => model.StreetName)
@Html.DisplayFor(model => model.ApartmentNumber)
4.Index.cshtml:
@await Html.PartialAsync("_partialNameInfo")
@section Scripts{
function checknames() {
var flag;
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
var data = { firstname, lastname };
$.ajax({
url: "/Home/Test",
type: "POST",
data :data,
dataType: 'html',
success: function (result) {
$("#partial2").html(result);
}
})
}
}
5,控制器
public IActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Test(NameInfo nameInfo)
{
var model = new List()
{
new NameInfo(){ Id=1,FirstName="a",LastName="b",Address=new Address(){ StreetName="aa",ApartmentNumber=1001} },
new NameInfo(){ Id=2,FirstName="c",LastName="d",Address=new Address(){ StreetName="bb",ApartmentNumber=1002} }
};
var data = model.Where(m => m.FirstName == nameInfo.FirstName).Where(m => m.LastName == nameInfo.LastName).Select(m => m.Address).FirstOrDefault();
return PartialView("_partialAddressInfo",data);
}
6,结果