2014-07-16 3 views
1

Мне нужно передать модель View с одного контроллера на другой контроллер. Я использовал приведенное ниже заявление.Передача модели от одного контроллера к другому

return RedirectToAction("FillNewSession", "Account", new { LoginResult = loginResult }); 

LoginResult является объектом модели «UserLoginProperties». Контроллер FillNewSession приведен ниже.

public ActionResult FillNewSession(UserLoginProperties LoginResult) 
    { 
     Session["UserID"] = LoginResult.UserID.ToString(); 
     Session["LoginID"] = LoginResult.LoginID; 
     Session["UserFullName"] = LoginResult.UserFullName; 
     Session["UserTypeID"] = LoginResult.UserTypeID; 
     Session["UserRefNo"] = LoginResult.UserRefNo; 
     Session["UserNRIC"] = LoginResult.UserNRIC; 

     return Redirect("~/index.aspx"); 
    } 

Проблема заключается в том, когда контроллер «FillNewSession» выполняется переданный параметр «LoginResult» равна нулю.

Пожалуйста, помогите.

+0

возможно дубликат [модели передачи и параметра с RedirectToAction] (http://stackoverflow.com/questions/16468061/passing-model-and-parameter-with-redirecttoaction) – markpsmith

ответ

0

Если вы хотите передать объект через вызов переадресации, вам необходимо отправить все свойства объекта по одному, как показано ниже. Вы не можете просто передать объект так, как есть.

public class UserLoginProperties 
{ 
    public string UserID { get; set; } 
    public string LoginID { get; set; } 
} 
public class HomeController : Controller 
{ 

    public ActionResult Index() 
    { 
     var prop = new UserLoginProperties(){ LoginID = "123", UserID = "abc"}; 
     return RedirectToAction("OtherAction", new { UserID=prop.UserID, LoginID=prop.LoginID }); 
    } 

    public ActionResult OtherAction(UserLoginProperties prop) 
    { 
     // do whatever you want with it here 
    } 
} 
+0

@Ohlin ... да понимаю , Проблема здесь заключается в том, что я делаю Session.Abandon перед выполнением перенаправления. Поэтому во время этого TempData будет очищен, так как он использует Session. Мой сценарий здесь мне нужно выпустить новый идентификатор сеанса, как только пользователь вошел в систему, чтобы предотвратить Session Fixation, следовательно, я делаю Session.Abandon перед назначением значений для сеанса. – vsriganan

+0

@vsriganan Хорошо, я неправильно понял ваш вопрос. Я обновил свой ответ с помощью нового решения. – Ohlin

+0

спасибо брату ... Вы спасатель жизни ... отметили ваш ответ как правильный ... – vsriganan

Смежные вопросы