asp.net mvc 3 ajax表单与telrik网格提交打开一个新页面

时间:2011-12-08 15:37:30

标签: asp.net-mvc-3 asp.net-ajax telerik-grid

在我的ASP中。 Net MVC 3.0项目。 我有Telerik Grid。

在网格单元格中我从部分视图加载内容,其中包含Ajax表单。 (对于网格的一列中的每个单元格)

当我提交该表格时。

Ajax表单正在打开新页面而不是更新目标ID。

我正在加载所需的脚本

<script src="@Url.Content("~/Scripts/jquery-1.6.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

这些脚本加载在母版页(_Layout.cshtml)

我的Web.config

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

我在这个项目的大多数地方都使用过Ajax表单。 它在所有这些地方都很完美。

如果我可以从telerik网格提交ajax表单,那么任何线索

更多详情

控制器

public JsonResult AddRemoveThisLocation(int LocationID, FormCollection collection, string button)
    {
return Json(new
        {
            success = _success,
            message = _message
        }, JsonRequestBehavior.AllowGet);
    }
 }

使用.loadContentfrom()方法

将部分视图加载到Telerik网格中
@using(Ajax.BeginForm("AddRemoveThisLocation", "Controller", new { LocationID = Model.AddressID }, new AjaxOptions {
OnBegin="ValidateNumbers",
HttpMethod = "POST",
OnSuccess = "ShowSignUpStatus"} ))
{
 @Html.TextBoxFor(model => model.Phone, new { id="phone"+Model.AddressID, name="Phone" })
<input type="submit" value="Add" class="button" name="button" id="@(Model.AddressID)" />
}

2 个答案:

答案 0 :(得分:0)

试试这个:

 [AcceptVerbs(HttpVerbs.Post)]
 public JsonResult AddRemoveThisLocation(int LocationID, FormCollection collection, string button)
        {
    return Json(new
            {
                success = _success,
                message = _message
            }, JsonRequestBehavior.AllowGet);
        }
     }

答案 1 :(得分:0)

我有类似的问题。并且解决方案是确认没有重复的jQuery引用 并检查这些是否正确加载。

    <script src="@Url.Content("~/Scripts/jquery-1.6.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

那应该解决你的问题。