MVC从void-POST动作重定向

我目前的行动是这样的:


[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))

    {

        //...

    }

}

但这显然行不通。有没有办法从应该返回无效的动作重定向?或者,反过来说,应该返回ActionResultnot的 Action 是否会导致当前页面的任何重定向或重新加载?


编辑:“重复”与此无关。可能一个void动作的返回与一个动作的返回基本相同EmptyResult,但这不是这里的主题,基本上我想知道如何在运行时在 anEmptyResult和 an之间进行选择ActionResult。


临摹微笑
浏览 186回答 1
1回答

蝴蝶不菲

像这样的东西?您可以随时EmptyResult()从 Action返回。[HttpPost]public ActionResult AddMessage([FromBody] ShoutboxMessage input){    if (Request.Cookies["usrid"] == null)        return this.RedirectToAction("Login");    if (!string.IsNullOrWhiteSpace(input.Message))    {        //...        return new EmptyResult();    }}
打开App,查看更多内容
随时随地看视频慕课网APP