我使用最新的MVC,带有属性路由。
当用户提交联系人表单时,它会重定向到"感谢您提交信息"视图,路径为foo.com/success
。
我如何配置它,使我的代码可以像往常一样重定向到success
操作,但用户不能直接导航到它?
若页面中并没有链接,用户将不会直接访问它
否则,如果用户无法访问它,您也无法通过代码访问它。
[HttpGet]
public ActionResult MyAction(){
//...
return RedirectToAction("Success");
}
[HttpGet]
public ActionResult Success(){
ViewBag.Result = "thank you for submitting your info";
return View();
}
如果你想阻止用户使用url访问操作,你的操作不能有[HttpGet],或者你必须在你的操作上设置AuthorizeAttribute。为此,使用ajax请求调用你的操作,并用Json 将你的成功消息发送给客户端
//Client Side
$.ajax({
type: "POST",
url: 'Action URL',
contentType: "application/json; charset=utf-8",
data: {id :1},
dataType: "json",
success: function(result) {
alert(result.message);
}
});
[HttpPost]
public ActionResult MyAction(string id){
return Json(new {message="Your Message"});
}