1

看法:

@{
    AjaxOptions ajax = new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "sub_id" };
    Layout = null;       
}

<div id="sub_id"></div>

@using (Ajax.BeginForm(ajax))
{
    @Html.TextBox("email");
    <input type="submit" value="подписаться" />
}

控制器:

[HttpPost]
public ContentResult LeftMenuSubscription(string email)
{
    return new ContentResult(){Content = "<script>alert('Thanks')</script>"};
}

“谢谢”警报节目。

但在 div 中sub_id设置所有 page( <title></title><div>...</div>)。

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

- 连接的。

html:

<html>
    <head>
        <title>Главная страница</title>
        <link href="/Content/Site.css" rel="stylesheet" type="text/css">
        <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"</script>
        <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
        <script src="/Scripts/jQueryFixes.js" type="text/javascript"></script>
    </head>
    <body>
        ....
        <form action="/" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#sub_id" id="form0" method="post">
            <input id="email" name="email" type="text" value="">
            <input type="submit" value="подписаться">
        </form>
        ....
    </body>
</html>

可能是什么问题呢?

4

1 回答 1

1

在我看来,您的 Ajax 选项不完整。我相信您需要添加您请求的操作:

@using (Ajax.BeginForm("ActionName", "ControllerName", ajax))
{
    @Html.TextBox("email");
    <input type="submit" value="подписаться" />
}

在测试中运行它我会收到一个弹出警报,这正是应该发生的事情,因为您正在返回一个脚本,上面写着:<script>alert('Thanks')</script>

如果您只想显示 divThanks则不要返回脚本标签

如果您只想在 div 中显示感谢一词,请使用此选项

[HttpPost]
public ContentResult Test(string email) 
    return new ContentResult() { Content = "<span>Thanks</span>" };
}

这非常适合我使用修改后的表格

@using (Ajax.BeginForm("Test", "Test", ajax))
{
    @Html.TextBox("email");
    <input type="submit" value="Save" />
}
于 2012-05-23T13:36:01.393 回答