0

我有一些内置的BootstrapBaseController.cs方法

public void Success(string message)
{
    TempData.Add(Alerts.SUCCESS, message);
}

我还没有使用它,但我想它显示了我传递给此方法的一些成功消息。我想在我的另一个名为PortalController. 在以下方法中,我想在将用户添加到数据库时显示成功消息。

建议?

[HttpPost]
        public ActionResult Register(RegisterModel user)
        {
            if (ModelState.IsValid && (user.Password == user.ConfirmPassword))
            {
                var regUser = _db.Users.Create();

                regUser.UserName = user.UserName;
                regUser.Password = user.Password;

                _db.Users.Add(regUser);
                _db.SaveChanges();
            }
            return View();
        }
4

2 回答 2

0

您需要PortalControllerBootstrapBaseController.

public class PortalController : BootstrapBaseController

如果这不是一个选项,您可能需要将该通用方法移至两个控制器使用的第三个类。

于 2013-05-31T12:22:12.053 回答
0
  1. 使 PortalController 继承自 BootstrapBaseController
  2. 在返回 View call Sucess 并设置消息之前
  3. 在您的 _layout.cshtml 视图上(我假设您的所有视图都继承使用此布局)检查该临时变量并显示您的消息

更新了控制器方法:

[HttpPost]
public ActionResult Register(RegisterModel user)
{
    if (ModelState.IsValid && (user.Password == user.ConfirmPassword))
    {
        var regUser = _db.Users.Create();

        regUser.UserName = user.UserName;
        regUser.Password = user.Password;

        _db.Users.Add(regUser);
        _db.SaveChanges();
    }
    Success("User Created successfully");

    return View();
}

_Layout.cshtml

@if (TempData["VariableName"] != null)
    {
        <div>@TempData["VariableName"]</div>
    }
于 2013-05-31T12:41:56.427 回答