私の AccountController のログイン アクションは、ポスト メソッド/アクションへのリダイレクトのΕ Г И І И Оで言及されている手法を使用して、「ログイン成功」メッセージを私の StatusController の成功アクションにポストします。
/// <returns>
/// If login is successful, returns a view stating such. If the
/// login is not successful, the main Login view will be
/// redisplayed
/// </returns>
[HttpPost]
public ActionResult Login(logIn loginAttempt)
{
logIn theLoginModel = new logIn();
string username = loginAttempt.Username;
string password = loginAttempt.Password;
if (Membership.ValidateUser(username, password)) {
...
/* The login was successful. Redirect to the LoginSucess
* Action success */
status theStatus = new status();
theStatus.Message = Constants.StatusMsgs.LoginSuccess;
StatusController SC = new StatusController();
return SC.Success(theStatus);
} else {
...
return View(theLoginModel);
}
}
VS2010 デバッガーを使用して、成功アクションがコード フラグメントで正しいメッセージを取得することを確認できます。
namespace usedCarLotWebApp.Controllers
{
public class StatusController : Controller
{
/// <summary>
/// Outputs a Success status message to the user
/// </summary>
/// <returns>
/// A trivial view to display a Success status message to the
/// user
/// </returns>
[HttpPost]
public ActionResult Success(status theMessage)
{
return View(viewName: "Success", model: theMessage);
}
}
}
しかし、ステータス コントローラーの成功アクションがビューをレンダリングしようとすると、予想どおり、ステータス コントローラー ディレクトリではなく、アカウント コントローラー ディレクトリからビューをレンダリングしようとします。
StatusController ディレクトリで常に成功ビューを見つけようとするように、StatusController の成功アクションを変更する方法はありますか?