代码之家  ›  专栏  ›  技术社区  ›  Fraze

编辑器模板中的Ajax

  •  1
  • Fraze  · 技术社区  · 6 年前

    我对使用ASP.NET核心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。

    提前谢谢!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Fraze    6 年前

    正如斯蒂芬指出的,为了解决这个问题,我删除了嵌套的表单引用。我还为编辑器模板中的提交按钮指定了一个URL操作。

    就像这样

    <input type="submit" formaction="@Url.Action("CreateCtrlOption")" id="ctrlOptionSubmit" value="Create" class="btn btn-default" />