我有以下情况。
路线配置:
routes.MapRoute(
name: "SellerRegistration",
url: "Registration/{action}/{id}",
defaults: new { controller = "SellerRegistration", action = "Seller", id = UrlParameter.Optional, area = "" },
namespaces: new[] { "MyCompany.Controllers" }
);
因此,当网址为www.example.com/Registration/Seller
时,上述路线将匹配并显示视图而不会出现任何问题。
class SellerRegistration
{
public ActionResult Seller()
{
return View("Seller");
}
[AjaxOnly]
public bool ValidateUserEmail(string email)
{
return _userService.ValidateUserEmail(email);
}
}
在我的观看Seller.cshtml
中,我试图对方法ValidateUserEmail()
进行ajax调用。
我正在进行ajax调用,如下所示:
$.ajax({
type: "POST",
url: rootUrl + "/SellerRegistration/ValidateUserEmail",
cache: false,
async: false,
data: { email: $("#Email").val() },
success: function (data) {
if (data === 'True') {
//redirect to login page
window.location.href = newUrl;
} else {
$("#otherDetails").show();
$("#emailValidation").hide();
$("#submitCompleteFormDiv").show();
}
},
error: function (data, jqXhr) {
console.log(jqXhr.status);
}
});
我也尝试过在上面的ajax方法中生成url。
url: '@Url.Action("SellerRegistration", "ValidateUserEmail")'
但是我得到了
401 - 未经授权的错误。
由于我配置的路由,我猜不能进行ajax调用。但是,需要该路由来满足应用程序中的其他方案。
进行ajax调用时,网址格式类似于www.example.com/Registration/Seller
因此,浏览器会从ValidateUserEmail
启动对控制器SellerRegistration
内的www.example.com/Registration/Seller
方法的ajax调用。
由于没有名为Registration
的真实控制器,当在ValidateUserEmail()
控制器内对SellerRegistration
进行ajax调用时,我收到401 Unauthorized错误。
有人可以建议是否有任何技术或解决方法使其成为可能。
谢谢。