如何使用Mvc 3剃须刀填写清单?

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不会赢,但你会输

问题是您正在尝试从视图中调用操作.这意味着你真的没有得到MVC.这意味着您正在尝试使用MVC视图,就好像它是Web窗体一样.

MVC中的视图只是用于填充用户可以轻松消化的格式良好的数据的模板.

MVC与Web表单 - 两个圣诞请求的故事

让我们使用季节性类比.

MVC请求的故事:

在MVC中,a view就像你的圣诞火鸡.火鸡充满了数据,并提供给用户.

Controller就像厨师.这家人请他吃火鸡,然后他做饭并为圣诞晚餐供应.要煮火鸡,厨师必须先从商店取出.厨师买火鸡的商店就是Model.

整个过程有道理.

ASP.NET Web窗体请求的故事:

在ASP.NET Web窗体中,情况有所不同.

再一次,这个家庭想要土耳其的圣诞大餐.他们没有使用厨师,而是做了一些非常不可思议的事情:

家人问起火鸡,而不是问厨师.

火鸡说"OK"(或者更确切地说,"Gobble,goggle,gobble").然后它会自行杀戮,自我咀嚼,自己做饭,如果没有在微波炉中爆炸,就会向家人(用户)提供燔祭.

它没有被大量可爱的熟食数据所填充,而是充满了一种名为ViewState的无法消化的难以消化的粘性物,这有点像宇航员的圣诞晚餐.

晚餐是如此令人作呕,以至于欢乐的欢乐聚会变成了混乱,有人放火烧圣诞老人,他仍然被困在烟囱上(他吃了太多肉馅饼).

与此同时,鲁道夫已经退回到拉普兰,以便能够及时恢复到车辙季节,这有点像他的圣诞节.

祝大家圣诞快乐(或者至少是那些圣诞节的人).