Asp.net mvc 在.NETMVC4中使用AJAX的第一天,它没有';行不通
仍在努力解决这个问题,以下是我的工作流程:Asp.net mvc 在.NETMVC4中使用AJAX的第一天,它没有';行不通,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,仍在努力解决这个问题,以下是我的工作流程: 单击submit后,jquery将发送一个post请求来调用该方法 方法返回部分视图 显示在零件上 以下是表单视图: //SignUp.cshtml: <div id ="messageForm"> @using (Ajax.BeginForm("SignUp", "MVP", new AjaxOptions { Confirm = "Are you sure you want to send this message?",
//SignUp.cshtml:
<div id ="messageForm">
@using (Ajax.BeginForm("SignUp", "MVP", new AjaxOptions
{
Confirm = "Are you sure you want to send this message?",
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "loading",
UpdateTargetId = "messageForm"
})) {
@Html.AntiForgeryToken();
@Html.ValidationSummary(true)
<fieldset>
<legend>
messageModel
</legend>
<p>
<input type ="submit" value ="Send Message" />
</p>
</fieldset>
以下是视图文件夹中的局部视图:
谢谢。cshtml:
非常感谢您!我们稍后会与您联系
测试时,我没有看到确认对话框,它重定向到感谢页面
有人能告诉我为什么会这样吗?你有:
@using (Ajax.BeginForm("ThankYou", "MVP", new AjaxOptions
我认为这应该是:
@using (Ajax.BeginForm("SignUp", "MVP", new AjaxOptions
第一个字符串是操作名称,您在控制器中只有
注册
。控制器方法称为注册,而Html.AjaxForm中的操作是“ThankYou”,您确定它有效吗?我添加了一个答案,假设您有错误?问题中没有任何说明这一点?您的标记(如嵌套表单)中是否有任何有趣的地方,因为它听起来似乎不是异步提交的表单?您是否在布局/视图中引用了jquery.unobtrusive ajax.js
文件?因为要使Ajax.BeginForm
工作,需要此文件…@LifeScript,所以您需要在布局或视图中包含
的脚本。默认的mvc项目模板中不包含此文件,您需要手动添加它,它与您的web.config无关。我更改了它,但仍然相同problem@LifeScript,什么是MVCView
?视图是强类型的吗,我在视图中看不到多少?另外,您是否缺少ajax的JS文件?
@using (Ajax.BeginForm("ThankYou", "MVP", new AjaxOptions
@using (Ajax.BeginForm("SignUp", "MVP", new AjaxOptions