我是 MVC 的新手。我得到了一个代码,它正要从控制器填充视图数据并将其传递给视图。只是看看代码。
控制器
public ActionResult Edit(int id)
{
ViewData["Name"] = "My name is XYZ";
return View();
}
查看页面
@Html.TextBox("Name")
我的问题是文本框如何理解提取名称并将其显示为文本框值。基本上名称存储在视图数据中。首先,我们需要从 viewdata 中提取数据,然后我们可以将该数据作为值分配给文本框。这个怎么运作 ?。
有人解释,但事情对我来说不是很清楚
MVC 设计为使用默认协议来查找关键字并尝试与这些关键字建立关联。您已选择将“名称”用于临时数据对象。然后 MVC 将努力寻找任何具有相同名称的元素。它认为您打算为元素分配与 ViewData 对象相同的名称,因为您希望它关联。
ViewBag 也是如此。您可以给 ViewBag 一个名称 (ViewBag.Name),并且任何时候您对元素使用“名称”时,MVC 都会自动假定您希望该元素与 ViewBag 数据相关联。这也适用于列表!
ViewBag.myList = db.Products.ToList();
@Html.DropDownList("myList");
我对 mvc 流程的了解不是很清楚。我是 mvc 的新手。所以我正在阅读 mvc 教程。阅读上述答案后,我不太相信。想想asp.net web 表单。在 asp.net 网络表单中
如果我们像这样将任何内容存储到视图状态或会话中,viewstate["Name"]="Mou" or session["Name"]="Mou"
那么我们需要像这样在客户端呈现该值,<asp:textbox value=<% name %>/>
那么我会得到错误,但如果我们这样写,<asp:textbox value=<% viewstate["Name"] as string %>/>
那么它会起作用。那么如果我们简单地指定,MVC 是如何理解的@Html.TextBox("Name")
假设名称可以存储在 session、viewdata、viewbag、tempdata 等中,那么 MVC 引擎如何解决它?寻找更多示例的良好解释。谢谢