Asp.net core 两个表单(1个ajax和1个常规post),同一页面上有一个模型
我有一个页面,根据VIN编号查找车辆信息,然后将其添加到网格中。查找是在模式弹出窗口上进行的,是一个简单的ajax调用,用于将数据加载到ViewComponent中 ViewComponent中的代码仅显示年份、品牌、型号等。。。而且它工作正常 现在的问题是。。。模态仍然打开,并在Viewcomponent中显示所有车辆数据。这里有一个表格,需要一些额外的信息。现在我需要提交这个表单,它应该包含所有CurrentVehicleInfo值,以及刚刚分配给CurrentVehicleInfo类中附加属性的附加信息。 此提交应关闭模式,并将车辆添加到主页上的网格中 当我添加车辆(OnPostAddVehicle功能)时,CurrentVehicleInfo具有所有默认值,而不是我查找的值 我认为问题在于,在执行Ajax调用时,我没有保留CurrentVehcileInfo的值。由于它是一个单独的形式,我不能将它们存储在一个隐藏的字段中。我如何做到这一点 下面是示例代码 这是VinLookup表单(使用Ajax的常规表单) 附加表格为Asp.net core 两个表单(1个ajax和1个常规post),同一页面上有一个模型,asp.net-core,asp.net-core-mvc,razor-pages,Asp.net Core,Asp.net Core Mvc,Razor Pages,我有一个页面,根据VIN编号查找车辆信息,然后将其添加到网格中。查找是在模式弹出窗口上进行的,是一个简单的ajax调用,用于将数据加载到ViewComponent中 ViewComponent中的代码仅显示年份、品牌、型号等。。。而且它工作正常 现在的问题是。。。模态仍然打开,并在Viewcomponent中显示所有车辆数据。这里有一个表格,需要一些额外的信息。现在我需要提交这个表单,它应该包含所有CurrentVehicleInfo值,以及刚刚分配给CurrentVehicleInfo类中附加
<form method="post" asp-page-handler="AddVehicle">
<input type="hidden" asp-for="CurrentVehicleInfo.Year" />
<input type="hidden" asp-for="CurrentVehicleInfo.Make" />
<input type="hidden" asp-for="CurrentVehicleInfo.Model" />
<button type="submit" class="btn btn-primary">Add Vehicle to Booking</button>
</form>
首先,您可以使用浏览器开发人员工具中的“网络”选项卡来确认正在发布的值(如果有),其次,您可以使用JavaScript在隐藏字段中设置值。JS可以访问DOM中的任何内容,包括所有表单中的表单字段。感谢您的帮助。我想我在没有javascript的情况下缺少了一些东西。最后,我在两个表单上都创建了隐藏字段,在ajax调用的OnSuccess中,我将数据从一个表单复制到另一个表单。首先,您可以使用浏览器开发人员工具中的“网络”选项卡确认发布了哪些值(如果有),其次,您可以使用JavaScript设置隐藏字段中的值。JS可以访问DOM中的任何内容,包括所有表单中的表单字段。感谢您的帮助。我想我在没有javascript的情况下缺少了一些东西。最后,我在两个表单上都创建了隐藏字段,在ajax调用的OnSuccess中,我将数据从一个表单复制到另一个表单。
[BindProperty]
public Vehicle CurrentVehicleInfo { get; set; } = new Vehicle();
[BindProperty]
public List<Vehicle> CurrentVehicles { get; set; } = new List<Vehicle>();
public IActionResult OnPostValidateVinAsync(string vinNumber)
{
ValidateVin();
return ViewComponent("VehicleInformation", CurrentVehicleInfo);
}
<form method="post" asp-page-handler="AddVehicle">
<input type="hidden" asp-for="CurrentVehicleInfo.Year" />
<input type="hidden" asp-for="CurrentVehicleInfo.Make" />
<input type="hidden" asp-for="CurrentVehicleInfo.Model" />
<button type="submit" class="btn btn-primary">Add Vehicle to Booking</button>
</form>
public IActionResult OnPostAddVehicle()
{
var test = CurrentVehicleInfo;
return Page();
}