在MVC中对AJAXFORM使用插入模式有什么用?

时间:2015-01-30 09:26:04

标签: asp.net-mvc-4

当我点击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>

1 个答案:

答案 0 :(得分:0)

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

如下所示:

@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 会在段落标记上方插入我的部分视图插入模式。插入将插入我的部分视图在段落标记 InsertionMode.Replace 之后将标记内的所有内容替换为目标ID。