C# 如何使用MVC3Razor填写列表?

C# 如何使用MVC3Razor填写列表?,c#,asp.net,asp.net-mvc,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我是Asp.NETMVC3的新手。如何使用Test方法显示列表,但我不能编写@product.Test() 视图: 当你尝试时会发生什么?我们可以看看您的Test()方法吗 您是否尝试过用这样的括号括起列表项生成 <ul> @foreach (var product in Model) { <li>@product.Test()</li> } </ul> @foreach(模型中的var乘积) { @产品测试() } 尝试时会发生什么?我

我是Asp.NETMVC3的新手。如何使用Test方法显示列表,但我不能编写@product.Test()

视图:


当你尝试时会发生什么?我们可以看看您的
Test()
方法吗

您是否尝试过用这样的括号括起列表项生成

<ul>
@foreach (var product in Model)
{
  <li>@product.Test()</li>
}
</ul>
    @foreach(模型中的var乘积) {
  • @产品测试()
  • }

尝试时会发生什么?我们可以看看您的
Test()
方法吗

您是否尝试过用这样的括号括起列表项生成

<ul>
@foreach (var product in Model)
{
  <li>@product.Test()</li>
}
</ul>
    @foreach(模型中的var乘积) {
  • @产品测试()
  • }

您不必在视图中调用
Test()
方法

视图中的
Model
属性是作为第二个参数传递的:

return View("Product", products);
因此,基本上,控制器级别的
产品
变量在您看来变成了
模型

当视图实际呈现时,已经调用了
ProductController.Test()
方法(事实上,此调用使视图呈现更加均匀)。

您不必在视图中调用该
Test()
方法

视图中的
Model
属性是作为第二个参数传递的:

return View("Product", products);
因此,基本上,控制器级别的
产品
变量在您看来变成了
模型

视图实际呈现时,已经调用了
ProductController.Test()
方法(事实上,此调用使视图呈现更均匀)。

您已经将产品模型传递给视图,因此不必在视图中调用控制器操作。简单使用

@product.PropertyNameHere

如果启用了Intellisense,则应在键入@product.后立即自动填充选项列表

您还需要确保您的foreach周围有支架,尽管我不完全确定这是否必要。。。我想是的

@foreach (var product in Model)
{
<li>@product.Whatever</li>
}
@foreach(模型中的var产品)
{
  • @产品,随便什么
  • }
    您已将产品模型传递给视图,因此不必在视图中调用控制器操作。简单使用

    @product.PropertyNameHere

    如果启用了Intellisense,则应在键入@product.后立即自动填充选项列表

    您还需要确保您的foreach周围有支架,尽管我不完全确定这是否必要。。。我想是的

    @foreach (var product in Model)
    {
    <li>@product.Whatever</li>
    }
    
    @foreach(模型中的var产品)
    {
    
  • @产品,随便什么
  • }
    如果你和MVC较量,MVC不会赢,但你会输 问题是您试图从视图调用操作。这意味着你没有得到MVC。这意味着您正试图使用MVC视图,就像它是一个Web表单一样

    MVC中的视图只是用来填充格式良好的数据的模板,用户可以很容易地消化这些数据

    MVC vs Web表单-两个圣诞节请求的故事 让我们用一个季节性的比喻

    MVC请求的故事:

    在MVC中,
    视图
    就像你的圣诞火鸡。火鸡塞满了数据,并被端给了用户

    控制器就像厨师。家人向他要了一只火鸡,他做了火鸡,并把它作为圣诞晚餐。要烹调火鸡,厨师必须首先从商店拿到。厨师买火鸡的商店是
    型的

    整个过程有点道理

    ASP.NET Web表单请求的故事:

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

    再一次,这家人想要火鸡作为圣诞晚餐。他们不使用厨师,而是做一些极不可能的事情:

    这家人没有问厨师,而是问火鸡

    火鸡说“好”(或者更确切地说,“狼吞虎咽,目瞪口呆,狼吞虎咽”)。然后,它会自杀、拔毛、烹饪,如果没有在微波炉中爆炸,就会向家人(用户)献上燔祭

    取而代之的是塞满了大量精心制作的可爱数据,取而代之的是一种叫ViewState的不讨人喜欢、难以消化的黏液,有点像宇航员的圣诞晚餐

    晚餐太恶心了,欢乐的节日聚会变成了混乱,有人放火烧了仍然被困在烟囱里的圣诞老人(他吃了太多的肉馅饼)

    与此同时,鲁道夫已经回到拉普兰,以便他能及时恢复,赶上发情季节,这有点像他的圣诞节

    祝大家圣诞快乐(或者至少是你们中那些喜欢圣诞节的人)。

    如果你和MVC较量,MVC不会赢,但你会输 问题是您试图从视图调用操作。这意味着你没有得到MVC。这意味着您正试图使用MVC视图,就像它是一个Web表单一样

    MVC中的视图只是用来填充格式良好的数据的模板,用户可以很容易地消化这些数据

    MVC vs Web表单-两个圣诞节请求的故事 让我们用一个季节性的比喻

    MVC请求的故事:

    在MVC中,
    视图
    就像你的圣诞火鸡。火鸡塞满了数据,并被端给了用户

    控制器就像厨师。家人向他要了一只火鸡,他做了火鸡,并把它作为圣诞晚餐。要烹调火鸡,厨师必须首先从商店拿到。厨师买火鸡的商店是
    型的

    整个过程有点道理

    ASP.NET Web表单请求的故事:

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

    再一次,这家人想要火鸡作为圣诞晚餐。他们不使用厨师,而是做一些极不可能的事情:

    这家人没有问厨师,而是问火鸡

    火鸡说“好”(或者更确切地说,“狼吞虎咽,目瞪口呆,狼吞虎咽”)。然后它杀死它自己
    using System.Data.Entity;
    
    namespace MvcApp.Models
    {
        public class MyAppContext : DBContext
        {
            public DBSet<Product> { get; set; }
        }
    }
    
    namespace MvcApp.Models
    {
        public class MyAppContextInitializer : DropAndCreateAlways<MyAppContext>
        {
            protected override void Seed(MyAppContext context)
            {
                Product product = new Product
                {
                    Name = "Widget",
                    Price = 10.00m;
                    Description = "It's a widget!"
                };
                context.Products.Add(product);
                base.seed(context);
            }
    
        }
    }
    
    Database.SetInitializer(new MvcAppContextIntializer());
    
    namespace MvcApp.Controllers
    {
        public class ProductController : Controller
        {
            DBContext dbContext = new DBContext();
    
            //
            // GET: /Product/
    
            public ViewResult List()
            {
                IEnumerable<Product> products = dbContext.Products;
                return View(products);
            }
    
        }
    }
    
    @model IEnumerable<MvcApp.Models.Product>
    
    @{
        Layout = "~/Views/Shared/_Layout.cshtml";
        ViewBag.Title = "List of Products";
    }
    
    <h2>Product List</h2>
    <ul>
        @foreach (var p in Model)
        {
            <li>@p.Name></li>
            <li>@p.Description</li>
            <li>@p.Price</li>
        }
    </ul>