1 回答

TA貢獻1858條經驗 獲得超8個贊
有趣的問題:)
最初的解決方案是實現一個自定義ActionResult,該自定義將覆蓋ExecuteResult設置TempData消息的方法。
創建自定義操作結果: `
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 !");
}
希望有所幫助。
- 1 回答
- 0 關注
- 163 瀏覽
添加回答
舉報