MVC 中 AJAXFORM 的插入模式有什么用?

what is the use of insert mode on AJAXFORM in MVC?

当我单击 ajax 时,div 中正确加载了 partila 视图,其 ID 为 mytraget。但我的问题是 ajax 形式的 insertmode 有什么用。

在提交 ajax 表单时,它总是加载 div 内部的部分视图,在所有类型的插入模式下都将 id 设置为 mytraget。那么什么是插入模式呢?

我的原始视图名为 MyView

@model Example.Models.mytest

<div id="mytraget"> </div>

@using(Ajax.BeginForm("myParialAjax", new AjaxOptions() { InsertionMode = InsertionMode.InsertBefore, UpdateTargetId = "mytraget" }))
{
    <p>Name</p> @Html.TextBoxFor(m => m.string1)

    <input type="submit"  value="Submit" />
}

我的 Cobtroller 方法

[HttpPost]
public PartialViewResult myParialAjax(mytest s)
{
    return PartialView("Mypartial", s);
}

我的 Parial 视图被命名为 Mypartial

@model Example.Models.mytest

<p> 
    @Html.TextBoxFor(m =>m.string1)
</p>

在所有类型的插入模式下,我都可以看到下方 div 的部分视图。 输出:

<div id="mytraget">
    <p>
        <input id="string1" type="text" value="asdf" name="string1">
    </p>
</div>

我自己得到了答案我缺少的是需要在目标标签内插入一些标签。

如下所示:

@model Example.Models.mytest

<div id="mytarget">
    <p> my para </p>
</div>

@using(Ajax.BeginForm("myParialAjax", new AjaxOptions() { InsertionMode = InsertionMode.InsertBefore, UpdateTargetId = "mytarget" }))
{
    <p>Name</p> @Html.TextBoxFor(m => m.string1)

    <input type="submit"  value="Submit" />
}

现在InsertionMode.InsertBefore将在段落标记和[=30上方插入我的局部视图 =] 将在段落标记 之后插入我的部分视图 并且 InsertionMode.Replace 替换带有我的目标 ID 的标签 内的所有内容。