我正在使用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