Интересный вопрос:)
Первоначальным решением было бы реализовать пользовательский ActionResult
, который бы переопределил ExecuteResult
метод для установки сообщения TempData
.
СоздатьCustom ActionResult: `
public class RedirectWithConfirmationMessageResult : ActionResult
{
private readonly string message;
public RedirectWithConfirmationMessageResult(ActionResult redirectBaseResult, string message)
{
BaseResult = redirectBaseResult;
this.message = message;
}
public ActionResult BaseResult { get; private set; }
public override void ExecuteResult(ControllerContext context)
{
context.Controller.TempData["Message.Notification"] = this.message;
BaseResult.ExecuteResult(context);
}
}
Создание методов расширения
public static class RedirectExtensions
{
public static RedirectWithConfirmationMessageResult WithConfirmation(this RedirectToRouteResult instance, string message)
{
return new RedirectWithConfirmationMessageResult(instance, message);
}
public static RedirectWithConfirmationMessageResult WithConfirmation(this RedirectResult instance, string message)
{
return new RedirectWithConfirmationMessageResult(instance, message);
}
}
Использование
[HttpGet]
public ActionResult DoSomething()
{
return this
.RedirectToAction("Index", "Home")
.WithConfirmation("Saved Successfully !");
}
Надежда помогает.
Авторы этой записи. Авторы