我使用最新的MVC,带有属性路由。
当用户提交联系表单时,它会重定向到"感谢您提交您的信息"查看,路线foo.com/success
。
如何配置它以便我的代码可以像往常一样重定向到success
操作,但是用户无法直接导航到它?
答案 0 :(得分:1)
如果您的页面中没有链接,用户将无法直接访问该链接 否则,如果用户无法访问它,则无法通过代码访问它。
[HttpGet]
public ActionResult MyAction(){
//...
return RedirectToAction("Success");
}
[HttpGet]
public ActionResult Success(){
ViewBag.Result = "thank you for submitting your info";
return View();
}
答案 1 :(得分:1)
如果你想阻止用户使用url访问操作你的动作必须没有[HttpGet]或者你必须在你的action上设置AuthorizeAttribute。为此使用ajax请求来调用你的动作并用Json将你的成功消息发送给客户端< / p>
//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"});
}