IIS6+MVC4+IE浏览器,又出问题了,求大神帮忙解决啊

vermilion3618 vermilion3618 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先说说配置:
服务器:Windows Server 2003
平台:IIS6.0
开发环境:ASP.NET MVC4 (VS 2013 RC版本编译)

按招网上的流程完成了MVC4在Windows Server 2003 上的补丁安装和部署。
一切都OK 木有问题了 网站也可以访问了。

上出现问题的源码:

后台控制器代码:

public class HomeController : Controller
{
/// <summary>
/// 注册页面
/// </summary>
/// <returns></returns>
public ActionResult Register()
{
return View();
}

/// <summary>
/// 注册页面的数据提交视图
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[HttpPost]
public JsonResult Register(RegisterUser user)
{
UserModel um = new UserModel();
return Json(um.RegisterUser(user), JsonRequestBehavior.AllowGet);
}
}


.cshtml文件中的代码

@model HCP.Models.RegisterUser
@using (Ajax.BeginForm("Register", null, new AjaxOptions()
{
OnBegin = "regBegin",
OnSuccess = "regSuccess",
OnComplete = "regComplete"
}, new Dictionary<string, object>()
{

}))
{
<div class="regform">
<div class="ctrlleft"><span>*</span>用户名:</div>
<div class="ctrlcenter">@Html.TextBoxFor(e => e.UserName)</div>
<div class="ctrlright">4-18位字符,允许字母、数字、下划线,不区分大小写</div>
</div>
<div class="regform">
<div class="ctrlleft"><span>*</span>邮箱:</div>
<div class="ctrlcenter">@Html.TextBoxFor(e => e.Email)</div>
<div class="ctrlright">请输入您的常用邮箱,我们将在下一步验证您的邮箱,方便您以后找回密码</div>
</div>
<!--
部分代码省略... 很容易看出来吧,就是一个普通的Ajax.BeginForm表单,
用到了jquery.unobtrusive-ajax.js进行ajax提交数据
-->
}



上面的代码没啥难度吧,好 现在开始说问题
先看看Chrome这种牛逼的浏览器

通过Console查看一下这个Ajax.BeginForm生成的form表单中action的提交地址。Chrome一切正常


再来看看蛋疼的IE浏览器

奇葩了啊~~~为什么 写的Ajax.BeginForm("Register") 设置的是Register这个Action
而最终在IE中拿到的form.action却没有了Register....

继续往后看
现在把IE内核调整到IE7模式

空的,在IE7模式下action居然是空的,但提交却又能成功,仔细调试了一下,发现是jQuery帮了个忙
看图:

原来jQuery在判断到$.ajax的url为空字符串或未定义时,会自动为url设置成当前页面的地址
而我这里刚好提交的地址又和页面地址相同的,所以产生了一个巧合性的成功。。。。

大神们,问题您看明白了吗?? 这奇葩的IE 在搞什么呀。。。难道是MVC4的问题??? 该怎么去解决~~!~!~!

经过测试,发现 如果把项目部署到IIS7及以上的版本,就不存在这些问题。

求解决方案,拜托了 各位大神们~~
...全文

相关推荐

评论 19
收藏 已收藏
分享
返回顶部
vermilion3618
.NET社区 62,271 成员 668,968 内容