C# Razor页面发布带有模型绑定的多个表单
我在一个页面上有多个表单,我想在单击一个按钮后发布这些表单。我尝试使用一个javascript函数将两个表单都.submit()(放在按钮的onclick=中),但实际上只有一个表单的值被传递到OnPost()方法服务器端。以下是.cshtml和.cs文件中的相关代码: StudentMain.cshtmlC# Razor页面发布带有模型绑定的多个表单,c#,ajax,asp.net-mvc,razor,razor-pages,C#,Ajax,Asp.net Mvc,Razor,Razor Pages,我在一个页面上有多个表单,我想在单击一个按钮后发布这些表单。我尝试使用一个javascript函数将两个表单都.submit()(放在按钮的onclick=中),但实际上只有一个表单的值被传递到OnPost()方法服务器端。以下是.cshtml和.cs文件中的相关代码: StudentMain.cshtml <!--first form--> <form class="login100-form" method="post"> <span class="lo
<!--first form-->
<form class="login100-form" method="post">
<span class="login100-form-title" style="padding-bottom: 38px">
Student Information
</span>
<div class="wrap-input100">
<input class="input100 has-val" type="text" name="name" value='@ViewData["name"]' readonly/>
<span class="focus-input100" data-placeholder="Student Name"></span>
</div>
...more divs/inputs as above
</form>
<!--second form-->
<form class="login100-form" method="post">
<div class="wrap-input100">
<select class="input100 select" name="eduplan" selectedval='@ViewData["eduplan"]'>
<option disabled selected value style="display:none"/>
<option>High School Diploma</option>
<option>Technical Training</option>
<option>Associate Degree</option>
<option>Bachelor's Degree</option>
<option>Advanced Degree</option>
<option>Military</option>
<option>Other</option>
</select>
<span class="focus-input100" data-placeholder="Education Plan"></span>
</div>
...more divs/selects as above
<div class="container-login100-form-btn">
<div class="wrap-login100-form-btn">
<div class="login100-form-bgbtn"></div>
<button class="login100-form-btn" type="submit">
Save
</button>
</div>
</div>
</form>
那么,做这件事最好的方法是什么?如何确保两个表单中的值同时传递给OnPost()方法?我需要在某种程度上使用AJAX吗?非常感谢您的帮助。您可以为不同的表单帖子使用不同的方法,方法的名称指定为每个表单上的
asp页面处理程序的值。更多信息可以在这里找到
更新
例如,在模型类中有两个POST
方法,即:OnPostAdd
和onpoststract
,要发布到不同方法的不同表单如下所示:
<form method="post" asp-page-handler="Add">
<button type="submit">Add</button>
</form>
<form method="post" asp-page-handler="Subtract">
<button type="submit">Subtract</button>
</form>
添加
减去
PS:不管你的方法名是OnPostAdd
还是OnPostAddAsync
,ASP.NET核心仍然希望你的处理程序名是Add
,因为它会自动解析前缀,如OnPost
,OnGet
等,还有像Async
这样的后缀,通过将方法的名称指定为每个表单上的asp页面处理程序的值,可以对不同的表单帖子使用不同的方法。更多信息可以在这里找到
更新
例如,在模型类中有两个POST
方法,即:OnPostAdd
和onpoststract
,要发布到不同方法的不同表单如下所示:
<form method="post" asp-page-handler="Add">
<button type="submit">Add</button>
</form>
<form method="post" asp-page-handler="Subtract">
<button type="submit">Subtract</button>
</form>
添加
减去
PS:不管你的方法名是OnPostAdd
还是OnPostAddAsync
,ASP.NET核心仍然希望你的处理程序名是Add
,因为它会自动解析前缀,如OnPost
,OnGet
等,像Async
这样的后缀,你能在你的答案中总结一下视频中的不同方法吗?@eRank视频只显示了一种方法,请查看我的答案的更新以了解更多细节。你能在你的答案中总结视频中的不同方法吗?@eRank视频只显示了一种方法,查看我答案的更新,以了解更多信息