查看:
@{
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中设置所有页(<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>可能的问题是什么?
发布于 2012-05-23 21:36:01
在我看来,您的Ajax选项并不完整。我认为您需要添加您从以下位置请求的操作:
@using (Ajax.BeginForm("ActionName", "ControllerName", ajax))
{
@Html.TextBox("email");
<input type="submit" value="подписаться" />
}在一个测试中运行它,我得到一个弹出警告,这正是应该发生的,因为您返回的脚本如下:<script>alert('Thanks')</script>
如果只想让div显示Thanks,那么就不要返回脚本标记
如果您只想在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" />
}https://stackoverflow.com/questions/10717664
复制相似问题