MVC Ajax表单javascript没有用InsertionMode = InsertionMode.InsertAfter触发

时间:2014-11-18 22:15:29

标签: javascript jquery asp.net-mvc kendo-ui asp.net-mvc-ajax

我正在使用mvc Ajax.BeginForm加载一个包含kendo ComboBox的局部视图。

在表单的AjaxOptions中使用InsertionMode = InsertionMode.ReplaceWith时,一切正常,部分视图加载了kendo功能。

然而,当将InsertionMode更改为InsertionMode = InsertionMode.InsertAfter时,部分视图已加载但没有kendo功能,我得到一个简单的文本框而不是自动完成组合框。

我检查了两个方案页面源代码,我可以看到两个方案中的kendo jquery脚本,但它似乎只在使用ReplaceWith时被触发。

我使用的代码:

@using (Ajax.BeginForm("AddNewPlanDetail", "Plans", new AjaxOptions
{
   UpdateTargetId = "AdditionalPlanDetailsHolder",
   InsertionMode = InsertionMode.InsertAfter,//<--only changed this
   HttpMethod = "Post",
   OnFailure = "handleAjaxError"
}))
{  ......  }

所有其他代码(动作,部分视图)保持不变。

有什么想法吗?

更新

为了简化问题,我重新构建了一个没有kendo脚本的示例,只使用简单的javascript:

我的观点Index.chtml:

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title></title>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/unobtrusive")
</head>
 <body>
      <div>
        @using (Ajax.BeginForm("GetPartial", "AjaxTest", new AjaxOptions
                        {
                            UpdateTargetId = "updateTargetElement",
                            InsertionMode = InsertionMode.InsertAfter,//<--Change this
                            HttpMethod = "Post"
                        }))
    {
        <h1>
            Ajax Form Test
        </h1>
        <input type="submit" value="submit" />
    }
    <div id="updateTargetElement">
    </div>
</div>

我的控制器:

public class AjaxTestController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult GetPartial()
    {
        return PartialView("Partial1");
    }
}

我的部分视图Partial1.chtml:

<b>This is from partial</b>
<script>
alert('Fired');
</script>

警告脚本会被触发但仅在使用InsertionMode = InsertionMode.ReplaceWith

时触发

0 个答案:

没有答案