首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NerdDinner DinnerFormViewModel错误CS0030错误

NerdDinner DinnerFormViewModel错误CS0030错误
EN

Stack Overflow用户
提问于 2012-06-25 16:31:25
回答 1查看 555关注 0票数 1

我正在学习专业版ASP.NET MVC2中的NerdDinner部分,目前我需要实现DinnerFormViewModel和Renderpartial Dinnerform。这本书有一些错误,所以我试着在互联网上搜索并自己修复它。

我将DinnerFormViewModel放在Models文件夹中,代码如下:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace NerdDinner.Models
{
    public class DinnerFormViewModel : Controller
    {
        private static string[] _countries = new[]{
        "USA",
        "Ireland",
        "Scotland",
        "Namibia"
    };

        //Properties
        public Dinner Dinner { get; private set; }
        public SelectList Countries { get; private set; }

        //Constructor
        public DinnerFormViewModel(Dinner dinner)
        {
            Dinner = dinner;
            Countries = new SelectList(_countries, dinner.Country);
        }


        // GET: /DinnerFormViewModel/

        public ActionResult Index()
        {
            return View();
        }

    }
}

然后我创建了DinnerForm.ascx (分部类):

代码语言:javascript
复制
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Models.DinnerFormViewModel>" %>


<%: Html.ValidationSummary("Please correct the errors and try again.") %>

<% using (Html.BeginForm()) { %>

    <fieldset>

        <p>
            <%: Html.LabelFor(m => m.Dinner.Title) %>
            <%: Html.TextBoxFor(m => m.Dinner.Title) %>
            <%: Html.ValidationMessageFor(m => m.Dinner.Title, "*") %>

等等。

我已经做了如下的edit.aspx:

代码语言:javascript
复制
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Models.DinnerFormViewModel>" %>

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
    Edit: <%: Model.Dinner.Title %>
</asp:Content>

<asp:Content ID="Edit" ContentPlaceHolderID="MainContent" runat="server">

    <h2>Edit Dinner</h2>

    <% Html.RenderPartial("DinnerForm"); %>

</asp:Content>

现在,如果我启动应用程序,将弹出<% Html.RenderPartial("DinnerForm");错误提示: c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary Files\root\c8cca855\23406a1e\App_Web_dinnerform.ascx.32d6c807.tczxq3bd.0.cs(166):ASP.NET CS0030: Cannot convert type 'ASP.views_dinners_dinnerform_ascx‘to 'System.Web.Mvc.ViewUserControl’

我认为这与命名空间有关,但我不能修复错误,有人遇到了同样的问题,或者这里有人可以帮助我??谢谢!:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-25 16:36:04

您的分部视图应该继承自System.Web.Mvc.ViewUserControl。

ViewPage是用于查看完整视图的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11185837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档