我的CommentsController
中有以下两种方法。
[HttpGet]
[Authorize]
public ActionResult New(long id)
{
return RedirectToAction("Details", "Posts", new { id }); // lets be graceful.
}
[HttpPost]
[Authorize]
public ActionResult New(long id, string comment, IMiniPrincipal principal)
{
throw new NotImplementedException();
}
两者都通过任何posts/{id}/comment
路由解析,其中id是数值。我主要添加GET
操作以避免混淆(而不是仅仅告诉用户当他们尝试手动访问路径而不是通过表单POST
时它不存在,我将它们重定向到帖子评论将被提交至。)
问题是我是否可以在HTTP GET请求中使用永久重定向结果,并且在HTTP POST请求期间仍然无法永久重定向?
答案 0 :(得分:0)
将POST处理程序映射到模型可能会更好,这样可以减少同一URL映射到这两个操作的可能性。
因此,您的代码可能会改为:
[HttpPost]
[Authorize]
public ActionResult New(CommentModel model)
{
// { ...code... }
}
模型看起来像:
public class CommentModel
{
public long ID { get; set; }
public string Comment { get; set; }
public IMiniPrincipal Principal { get; set; }
}
答案 1 :(得分:0)
永久重定向基于每个方法工作,因此您可以在POST
上对给定网址执行永久重定向,同时向GET
个请求提供相同网址的内容。