вызовите контроллер и метод действия и передайте значения модели - PullRequest
0 голосов
/ 25 сентября 2011

Я вызываю другой контроллер и метод действия здесь

    [HttpPost]
    public ActionResult Index(LoginModel loginModel)
    {
        if (ModelState.IsValid)
        { some lines of code . bla bla bla
          return RedirectToAction("indexaction","premiumcontroller");
        }
    }

Теперь, что происходит, теперь выполняется индексация премиум-контроллера.

Как я могу передать значения loginmodel (или объект loginmodel) в premiumcontroller?Я не могу понять это.Спасибо.

Я использую asp.net mvc 3.

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Вы можете использовать новое ключевое слово для передачи значений в действии контроллера ...

return RedirectToAction(
    "indexaction",
    "premium", 
    new {
        Id = loginModel.Id,
        UserName = loginModel.UserName,
        Password = loginModel.Password   
    }
);

в другом контроллере

public ActionResult indexaction(int id, string uName, string paswrd)
{
    // do some logic...
}
1 голос
/ 25 сентября 2011

Вы можете передать их как параметры строки запроса:

return RedirectToAction(
    "index",
    "premium", 
    new {
        id = loginModel.Id,
        username = loginModel.Username,
    }
);

и внутри действия index контроллера premium:

public ActionResult Index(LoginModel loginModel)
{
    ...
}

Другая возможность - использовать TempData:

[HttpPost]
public ActionResult Index(LoginModel loginModel)
{
    if (ModelState.IsValid)
    { 
        // some lines of code . bla bla bla
        TempData["loginModel"] = loginModel;
        return RedirectToAction("index", "premium");
    }
    ...
}

и внутри действия index контроллера premium:

public ActionResult Index()
{
    var loginModel = TempData["loginModel"] as LoginModel;
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...