//ajax路由
routes.MapRoute(
"NAjax", // Route name
"{controller}/{action}/{name}", // URL with parameters
new { controller = "Comm", action = "Index", name = "" } // Parameter defaults
//contronl
public ActionResult Index(string name)
{
return View();
}
//view
<input name="email" type="text" class="login_logbox_left_text" id="email" onfocus="this.style.borderColor='#FFBA00'" onblur="this.style.borderColor='';check_email(this.value,'check_email')" maxlength="40"/>
//js
function check_user(strname) {
$.ajax({
type: "POST", //用POST方式传输
// dataType: "html", //数据格式:JSON
url: "../../Comm/Index/", //目标地址。适合ASP.NET MVC
data: strname, //数据
beforeSend: function() { }, //发送数据之前
complete: function() { }, //接收数据完毕
success: function(msg) {
//数据获取完毕,填充页面据显示
if (msg == "err") {
$("#check_usname").html("<div class=\"ajaxout_checkfalse\">用户名已经存在或者不合法!</div>");
check_form_username = false;
}
else {
$("#check_usname").html("<div class=\"ajaxout_checkture\"></div>");
check_form_username = true;
}
}
});
}
问题是在
public ActionResult Index(string name)
{
return View();
}
这里为什么取不到name的值
url: "../../Comm/Index/"
你的URL不就只有Comm这个Controller和Inde这个Action吗,根本没有name啊
url: "../../Comm/Index/" + strname应该才是对的
public ActionResult Index(string name)
{
return View();
}
这边的Name 是通过RouteTabe中规则,Url 匹配得到的结果,而你ajax通过Post方式请求,所以你必须通过Reques.Form 获取。
一楼基本上是正解了。你form里面取不到,可能是你ajax没写好,我不太懂jquery做ajax。
你关键没搞清楚路由原理。我最近在写这方面的随笔,希望对你有帮助。