我在我的代码中从2个点运行MVC5中的相同代码,一个将我的电子邮件地址传递给视图,另一个没有,我错过了一些基本的东西!!!
Code1(工作正常): 我的vUsersSecurityQuestion类,它将我的emailAddress从控制器传递到视图:
public partial class vUsersSecurityQuestion
{
public int userID { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string securityQuestion { get; set; }
public string securityQuestionAnswer { get; set; }
public string emailAddress { get; set; }
}
我的控制器代码工作(引用上面的ChangePWSeqQuestionViewModel作为返回控制器的模型):
ViewBag.dropdownSecQues = new SelectList(db.vNewSecurityQuestions.ToList(), "securityQuestionID", "securityQuestion");
ViewBag.EmailAddress = model.emailAddress;
var secQuestions = from q in db.vNewSecurityQuestions
select q;
var userInfo = from u in db.vUsers
where u.emailAddress == model.emailAddress
select u;
var model1 = new ChangePWSeqQuestionViewModel { viewUserAdmin = userInfo.ToList()};
我的LoginViewModel类(不会将我的用户名(与上面的电子邮件地址相同)从控制器传递到视图:
public class LoginViewModel
{
[Required]
[Display(Name = "Email:")]
public string Username { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password:")]
public string Password { get; set; }
}
我的控制器代码(不起作用)引用LoginViewModel类作为传递给控制器的模型:
ViewBag.dropdownSecQues = new SelectList(db.vNewSecurityQuestions.ToList(), "securityQuestionID", "securityQuestion");
var secQuestions = from q in db.vNewSecurityQuestions
select q;
var userInfo = from u in db.vUsers
where u.emailAddress == model.Username
select u;
var model1 = new ChangePWSeqQuestionViewModel {viewUserAdmin = userInfo.ToList()};
//Pass username and current password to view and force the user to change their password
return View("ChangePWSecQuestion", model1);
我的观点:
@Html.HiddenFor(m => m.emailAddress)
我希望我错过了一些明显的东西......一直盯着这个2小时+ 当我运行第一个代码时,我得到了隐藏字段,但是当我运行第二个代码时却没有。我无法弄清楚为什么?它们从2个不同的控制器运行..工作的控制器来自不同的控制器(并且必须重定向到正确的视图文件夹)。不起作用的那个来自同一个控制器,但是emailAddress没有被传回。 LINQ(var UserInfo)查询都返回单行数据......
答案 0 :(得分:0)
好的......我想出了另外两种方法,(但我仍然不知道为什么它只在某些时候起作用)。
您可以直接在模型中设置变量,例如:\PhpOffice\PhpWord\Shared\Html::addHtml($section, $htmlString);
。我以前试过这个,但没有emailAddress = model.emailAddress.ToString()
ToString()
然后在我看来,我能够做到以下任何一种情况,并且每次似乎都有效:
var model1 = new ChangePWSeqQuestionViewModel { viewNewSecurityQuestions = secQuestions.ToList(), viewUserAdmin = userInfo.ToList(), emailAddress = model.emailAddress.ToString() };
我生命中的三个小时我永远不会回来......希望它能为其他人节省那么多X1000 ......太光滑了。我确定这可能是个老消息,但对我来说真是太棒了!