把Razor转换成ASPX我做错了什么

本文关键字:错了 什么 ASPX Razor 转换 | 更新日期: 2023-09-27 18:22:51

我正在做一个简单的(我认为)MVC教程。唯一的问题是教程使用Razor,而我需要使用ASPX。我正在寻找的工作使用它。

我花了几个小时在互联网上寻找可能性,但我仍然收到这个错误:

编译错误

描述:编译所需的资源时出错为该请求提供服务。请查看以下内容具体的错误详细信息,并适当地修改源代码
编译器错误消息:CS1061:"object"不包含定义对于"Name"且没有接受第一个参数的扩展方法"Name"未能找到类型为"object"的(是否缺少using指令或程序集引用?)来源错误:

第12行:
第13行:
第14行:餐厅:<%:型号名称%>
第15行:评分:<%:型号。评级%>
第16行:

控制器代码为:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using EdeToFood.Models;
namespace EdeToFood.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";
            var model = new RestaurantReview()
            {
                Name = "Tersiguil's",
                Rating = 9
            };
            return View(model);
        }
        public ActionResult About()
        {
            ViewBag.Location = "Maryland, USA";
            return View();
        }
    }
}

ASPX是:

%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%: ViewBag.Message %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
    <div >
    Restaurant:  <%: Model.Name %>
    Rating:  <%: Model.Rating %>
    </div>
</asp:Content>

把Razor转换成ASPX我做错了什么

如果您想使用强类型视图,您必须在以下行中定义页面的View Model

Inherits="System.Web.Mvc.ViewPage<TheViewModel>" %>

所以在你的情况下应该是这样;

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<RestaurantReview>" %>

如果您没有像以前那样指定任何内容,那么ViewModel将是对象,而且正如您所知,它没有NameRating属性。

我相信您不希望冒号作为脚本分隔符的一部分:

<h2><% ViewBag.Message %></h2>

您也可以使用带有等号的不同语法作为Response.Write()的快捷方式,例如

<%=DateTime.Now %>