asp.net - Razor 页面独立地向每个控制器发布表单
问题描述
在我的 asp.net razor 项目中,我的页面包含多个表单。但如果我发布到表更新,主要信息表单数据更改将会丢失。如何在不更改其他表单数据的情况下提交表格?
(我想我可以尝试使用 js+ajax 不使用 razor 绑定来制作页面,但我会先尝试 razor 解决方案)
<table>
@for (int i = 0; i < @Model.data.Test.Count(); i++)
{
<tr>
<td>
<div>@Html.DisplayFor(model => model.data.Test[i])</div>
</td>
<td>
<form method="post" class="container" asp-page-handler="delete">
<input type="hidden" name="id" value="@i" />
<input type="submit" value="Delete" class="btn btn-primary" />
</form>
</td>
</tr>
}
</table>
//the main user info form
<form method="post">
<div class="form-group">
<label asp-for="data.UserName" class="control-label"></label>
<input asp-for="data.UserName" class="form-control" readonly />
<span asp-validation-for="data.UserName" class="text-danger"></span>
</div>
... other inputs.
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
解决方案
您可以尝试使用 ajax 并使用event.preventDefault();
它可以防止重新加载页面。这是一个演示:
<form method="post" id="myForm">
<div class="form-group">
<label asp-for="data.UserName" class="control-label"></label>
<input asp-for="data.UserName" class="form-control" readonly />
<span asp-validation-for="data.UserName" class="text-danger"></span>
</div>
... other inputs.
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" onclick="Save()" />
</div>
</form>
js:
function Save()
{
event.preventDefault();
$.ajax({
type: "POST",
data: $("#myForm").serialize(),
url: '/.../...',
}).done(function (result) {
});
}
推荐阅读
- python - Coremltools:传递给优化器的意外关键字参数:learning_rate
- python - 如何在 Python 脚本中激活 Conda 环境?
- csv - 向已发布的 CSV 链接添加范围
- sql - Sql Server 匹配整个单词
- python - Python - 在迭代过程中锁定值
- javascript - 添加 cron 包时反应测试失败
- firebase - 存储只有应用程序可以访问的敏感数据的最佳方式是什么?
- c++ - 格式化 constexpr const char*
- python - 不能使用 pip,Urllib3 NTLM
- python-3.x - 如何使用 Beautiful Soup 修改 xml?