Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web表单代码隐藏到ASP.NET MVC_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# Web表单代码隐藏到ASP.NET MVC

C# Web表单代码隐藏到ASP.NET MVC,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个Web表单中的小页面,我正在尝试使其成为ASP.NET MVC。 我的网页表格页: 这是我的旅行包模型 namespace TravelAgencyMVC.Models.DB { using System; using System.Collections.Generic; public partial class ToursPackage { public int Id { get; set; } public

我有一个Web表单中的小页面,我正在尝试使其成为ASP.NET MVC。 我的网页表格页:

这是我的旅行包模型

    namespace TravelAgencyMVC.Models.DB
{
    using System;
    using System.Collections.Generic;

    public partial class ToursPackage
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public Nullable<decimal> Price { get; set; }
        public string Img { get; set; }
    }
}
namespace TravelAgencyMVC.Models.DB
{
使用制度;
使用System.Collections.Generic;
公共部分类旅行包
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共字符串说明{get;set;}
公共可空价格{get;set;}
公共字符串Img{get;set;}
}
}
在Web表单中,我创建了从数据库加载标签文本和图像URL的页面。我还为我的链接创建了一个“OnCommand”。问题是我不知道如何在MVC中创建一个ViewModel来完成我在Web表单代码中所做的工作

编辑***


我的问题是。。。我应该在哪里创建getToursPackageMethod(),它将返回用于填充我的页面的ToursPackages列表?另外,我如何将这个列表从我的控制器传递到页面?

其中大部分将是MVC 101,您应该在上面阅读

我将告诉您如何根据MVC模式中的内容来完成它,而不是花时间基本上重写它。这将是准编码的,您可以填写详细信息,并使用任何您想要的集合、可枚举项等。您还没有提到您是否将使用Razor视图引擎(当前)或是否将坚持使用ASPX(它已过时,但对您来说更容易转换)

现在讨论您的问题,您基本上有一个已定义的模型和旧的webform页面标记

0。您真的不需要有ViewModel。此选项是可选的

1:您已经有一个型号了 您可能希望在其中添加查询方法,这是我的首选

2:您需要一个控制器,具有操作功能 控制器要做的是收集不同的操作(~页)。因此,我们需要一个
ActionResult
来处理您的请求,从模型中获取数据并将其返回到视图中

public ActionResult ViewTourPackages() {
    Collection<ToursPackage> colTourPkgs = // Your DB query method here
    return View(colTourPkgs);
}

对于基本的MVC应用程序,您需要创建视图、控制器和模型。ViewModels是可选的,尽管使用起来很好。注意:MVC应用程序也可以与现有的.aspx页面一起使用。投票关闭,范围太广,您提出的是一个关于ASP.NET MVC基础知识的广泛问题。你需要在线学习一些教程。问题的本质实际上是特定于您的,没有人知道如何准确地将Web表单代码转换为ASP.NETMVC实现本身。如果您了解ASP.NET MVC的基本知识,您将能够完成将Web表单代码转换为MVC设计模式所需的工作,并且仍然保持相同的功能。对不起,我的问题不清楚。我编辑了它。
getToursPackageMethod()
中的内容将包含在控制器类中的方法中。您通过模型中的列表。@user6824563您至少应该尝试提问,并就可能出现的问题发布特定问题。将您的问题分解为更小的问题,如“如何将数据从控制器传递到razor视图”。
    namespace TravelAgencyMVC.Models.DB
{
    using System;
    using System.Collections.Generic;

    public partial class ToursPackage
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public Nullable<decimal> Price { get; set; }
        public string Img { get; set; }
    }
}
public ActionResult ViewTourPackages() {
    Collection<ToursPackage> colTourPkgs = // Your DB query method here
    return View(colTourPkgs);
}
foreach(TourPackage item in Model) {
    // your markup here
    <p>My image is <img src="../img/<%=item.Img%></p>
    // and so on.
    // The code behind calculations can all be done here
}