从void-POST操作重定向MVC

时间:2018-08-15 12:59:41

标签: c# asp.net asp.net-mvc redirect

我当前的动作如下:

[HttpPost]
public void AddMessage([FromBody] ShoutboxMessage input)
{
    if (!string.IsNullOrWhiteSpace(input.Message) && Request.Cookies["usrid"] != null)
    {
        input.SbUserId = int.Parse(Request.Cookies["usrid"]);
        input.Timestamp = DateTime.UtcNow;
        context.ShoutboxMessages.Add(input);
        context.SaveChanges();
    }
}

我只想这样做:

[HttpPost]
public void AddMessage([FromBody] ShoutboxMessage input)
{
    if (Request.Cookies["usrid"] == null)
        RedirectToAction("Login");

    if (!string.IsNullOrWhiteSpace(input.Message))
    {
        //...
    }
}

但这显然不起作用。有没有办法从应该返回void的动作重定向?或者相反,应该返回ActionResult的Action是否不会导致当前页面的任何重定向或重新加载?

编辑:“重复”与此无关。可能是void动作返回的内容与EmptyResult动作基本相同,但这不是这里的主题,基本上我想知道如何在EmptyResult和{{ 1}}。

1 个答案:

答案 0 :(得分:1)

像这样?您随时可以从Action返回String output = a.replaceAll(",\\s*\n", "\n");

EmptyResult()