Pen*_*uen 1 c# asp.net asp.net-mvc asp.net-mvc-3
我是Asp.net Mvc3的新手.我不能这样做:如何使用Test方法显示列表但我不能写@ product.Test().我是新来的,你能帮助我吗?
视图:
@model IList<MvcApplicationScottGu.Models.ProductModel>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Product";
}
<h2>Product</h2>
<ul>
@foreach (var product in Model)
<li>@product.Test()</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
控制器:
namespace MvcApplicationScottGu.Controllers
{
public class ProductController : Controller
{
//
// GET: /Product/
public ActionResult Test()
{
var products = new ProductModel().GetProduct();
return View("Product",products);
}
}
}
Run Code Online (Sandbox Code Playgroud)
awr*_*ley 10
问题是您正在尝试从视图中调用操作.这意味着你真的没有得到MVC.这意味着您正在尝试使用MVC视图,就好像它是Web窗体一样.
MVC中的视图只是用于填充用户可以轻松消化的格式良好的数据的模板.
让我们使用季节性类比.
MVC请求的故事:
在MVC中,a view就像你的圣诞火鸡.火鸡充满了数据,并提供给用户.
该Controller就像厨师.这家人请他吃火鸡,然后他做饭并为圣诞晚餐供应.要煮火鸡,厨师必须先从商店取出.厨师买火鸡的商店就是Model.
整个过程有道理.
ASP.NET Web窗体请求的故事:
在ASP.NET Web窗体中,情况有所不同.
再一次,这个家庭想要土耳其的圣诞大餐.他们没有使用厨师,而是做了一些非常不可思议的事情:
家人问起火鸡,而不是问厨师.
火鸡说"OK"(或者更确切地说,"Gobble,goggle,gobble").然后它会自行杀戮,自我咀嚼,自己做饭,如果没有在微波炉中爆炸,就会向家人(用户)提供燔祭.
它没有被大量可爱的熟食数据所填充,而是充满了一种名为ViewState的无法消化的难以消化的粘性物,这有点像宇航员的圣诞晚餐.
晚餐是如此令人作呕,以至于欢乐的欢乐聚会变成了混乱,有人放火烧圣诞老人,他仍然被困在烟囱上(他吃了太多肉馅饼).
与此同时,鲁道夫已经退回到拉普兰,以便能够及时恢复到车辙季节,这有点像他的圣诞节.
祝大家圣诞快乐(或者至少是那些圣诞节的人).
| 归档时间: |
|
| 查看次数: |
10180 次 |
| 最近记录: |