【发布时间】:2017-04-27 17:35:54
【问题描述】:
我是一个初学者,我正在学习我的 MVC 中的一些教程。所以,我遇到了两种情况。
场景 1。
我必须在帖子中将一些数据传递给我的视图,然后将这些数据作为隐藏字段发送。这是代码。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ForgotPassword(ForgotPasswordMV viewModel)
{
if (ModelState.IsValid)
{
return RedirectToAction("VerifyToken", new { emailId = viewModel.EmailId });
}
^^ USING ANONYMOUS OBJECTS
return View();
}
public ActionResult VerifyToken(string emailId = null)
{
VerifyTokenMV viewModel = new VerifyTokenMV
{
EmailId = emailId
};
return View(viewModel);
}
验证令牌视图
@using (@Html.BeginForm("VerifyToken", "Security"))
{
@Html.HiddenFor(m => m.EmailId)
<button class="btn btn-primary">Continue</button>
}
工作得很好。我能够接收 EmailId 的值。到目前为止一切顺利。
场景 2。
需要从主视图打开部分视图,这里是sn-p。
主cshtml文件
<div class="abc">
@Html.Partial("../Widget/Customize", Model.Unit, new ViewDataDictionary() { { "ElementName", "UnitWidget" } })
</div>
部分cshtml文件
@{
string custWidgetElementName = ViewBag.ElementName;
}
// some html code below
观察:
在场景 2 中,我为什么使用 ViewDataDictionary。尽管这两个示例都可以正常工作。但是有什么理由让我不得不使用 ViewDataDictionary。在scenraio 1 中我们可以使用 ViewDataDictionary 吗?如果是,那么哪一个是最佳解决方案。
问题:当我需要传递值时,我应该使用new {key : value} 还是使用ViewDataDictionary 或者没有关联?我可以在 Senario 2 中使用匿名对象而不是 ViewDataDictionary
【问题讨论】:
标签: c# asp.net asp.net-mvc razor asp.net-mvc-5