c# - 编辑器模板中的 Ajax
问题描述
我对使用 Asp.net Core 2 的 MVVM / MVC 相当陌生。所以如果这是一个简单的问题,请原谅我。哈。
我在视图中有一个编辑器模板。基本上是表格中的表格。当使用编辑器模板中的按钮提交时,我想使用 AJAX 更新该模板。我似乎无法让它工作。可能吗?
<form asp-action="edit">
//FORM FIELDS REMOVED FOR BREVITY
<div class="hide" id="selectListItems">
@Html.EditorFor(model => model.ovm.opt, "CreateCtrlOption")
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>
编辑器模板:
<form asp-controller="ctrls" asp-action="CreateCtrlOption" data-ajax="true"
data-ajax-method="POST" data-ajax-success="onSuccess" data-ajax-update="divOpts">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" name="CtrlId" id="CtrlId" value="@ViewBag.ctrlId" />
<div class="form-group">
<label asp-for="Value" class="control-label"></label>
<input asp-for="Value" class="form-control" name="Value" />
<span asp-validation-for="Value" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
除了onSuccess
方法之外,我是否需要任何其他 javascript 才能使其工作?
我确实有 ajax 不显眼的引用。
先感谢您!
解决方案
正如斯蒂芬指出的那样,为了解决这个问题,我删除了嵌套表单引用。我还专门为编辑器模板中的提交按钮指定了一个 URL 操作。
像这样
<input type="submit" formaction="@Url.Action("CreateCtrlOption")" id="ctrlOptionSubmit" value="Create" class="btn btn-default" />