使用c#

时间:2015-06-15 09:43:56

标签: c# asp.net visual-studio-2010

尝试使用Asp.NET mvc2应用程序在视图中添加模型和显示数据时出现以下错误。

错误:

  

' /'中的服务器错误应用

     

编译错误

     

描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。

     

编译器错误消息:CS0246:类型或命名空间名称' MvcInputScreen'找不到(你错过了使用指令或汇编引用吗?)

来源错误:

  

第158行:
      第159行:[System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]       第160行:公共类views_customer_displaycustomer_aspx:System.Web.Mvc.ViewPage,System.Web.SessionState.IRequiresSessionState,System.Web.IHttpHandler {       第161行:
      第162行:私有静态bool @__初始化;

     

源文件:c:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 36f3c2d6 \ 5d16a5e9 \ App_Web_displaycustomer.aspx.90494039.kvpkqitq.0.cs Line:160

     

显示详细的编译器输出:

     

显示完整编译源:

以下是我的代码文件。

CustomerController.cs:

namespace Mydemo.Controllers
{
    public class CustomerController : Controller
    {
        //
        // GET: /Customer/

        public ViewResult DisplayCustomer()
        {
            Customer objCustomer = new Customer();
            objCustomer.Id = 12;
            objCustomer.CustomerCode = "1001";
            objCustomer.Amount = 90.34;

            return View("DisplayCustomer", objCustomer);
        }

    }
}

Customer.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mydemo.Controllers
{
    class Customer
    {
        private string _Code;
        private string _Name;
        private double _Amount;

        public string Code
        {
            set
            {
                _Code = value;
            }
            get
            {
                return _Code;
            }
        }

        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
            }
        }

        public double Amount
        {
            set
            {
                _Amount = value;
            }
            get
            {
                return _Amount;
            }
        }

        public string CustomerCode { get; set; }

        public int Id { get; set; }
    }
}

DisplayCustomer.aspx:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcInputScreen.Models.Customer>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>DisplayCustomer</title>
</head>
<body>
    <div>
    The customer id is <%= Model.Id %><br />

The customer Code is <%= Model.CustomerCode %><br />

<% if (Model.Amount > 100) {%>
This is a priveleged customer
<% } else{ %>
This is a normal customer
<%} %>
    </div>
</body>
</html>

请帮我解决这个错误。由于我也是ASP.NET的新手,我想知道如何在这里设置路由文件,这意味着假设我有3个视图文件(ie-index,create,details)我想要在任何时候设置任何一个文件,如果我只键入http://localhost:port no该页面将直接来。

2 个答案:

答案 0 :(得分:1)

只需查看错误消息:

  

编译器错误消息:CS0246:找不到类型或命名空间名称“MvcInputScreen”(您是否缺少using指令或程序集引用?)

     

Line 160: public class views_customer_displaycustomer_aspx : System.Web.Mvc.ViewPage<MvcInputScreen.Models.Customer>, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {

错误在第160行,因为您的Customer - 类不在MvcInputScreen.Models.Customer命名空间中,而是在Mydemo.Controllers.Customer中。

只需编辑DisplayCustomer.aspx中的相应行。

答案 1 :(得分:1)

当您的**S.N SP_Name Table_name** 1 sp_user tbl_account 类位于System.Web.Mvc.ViewPage<MvcInputScreen.Models.Customer>"命名空间中时,您的页面需要customer,因此您应将其更改为System.Web.Mvc.ViewPage“。

  

另外,我建议您更改MyDemo.Controller类的命名空间   从ModelMydemo.Controllers