C# MVC中的ascx文件错误

C# MVC中的ascx文件错误,c#,asp.net-mvc,partial-views,C#,Asp.net Mvc,Partial Views,我正在尝试在另一个视图中渲染部分ascx视图 然而,我的ascx文件中有以下错误,经过一些研究后,我仍然一无所知!: 类型或命名空间定义,或 预期的文件结束预期的文件结束 以下是dinnePerform.ascx中的代码 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.Dinner>" %> <%: Html.ValidationSummary

我正在尝试在另一个视图中渲染部分ascx视图

然而,我的ascx文件中有以下错误,经过一些研究后,我仍然一无所知!:

类型或命名空间定义,或 预期的文件结束预期的文件结束

以下是dinnePerform.ascx中的代码

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.Dinner>" %>

<%: Html.ValidationSummary("Please Corrent the Errors and Try Again.") %>

        <fieldset>
            <legend>Fields</legend>

<table border="0">
          <tr>
            <td><%: Html.LabelFor(m => m.Title) %></td>
            <td><%: Html.TextBoxFor(m => m.Title) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Title, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.EventDate) %></td>
            <td><%: Html.TextBoxFor(m => m.EventDate) %></td>
            <td><%: Html.ValidationMessageFor(m => m.EventDate, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Description) %></td>
            <td><%: Html.TextAreaFor(m => m.Description) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Description, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Address) %></td>
            <td><%: Html.TextBoxFor(m => m.Address) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Address, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Country) %></td>
            <td><%: Html.DropDownListFor(m => m.Country, ViewData["countries"] as SelectList)%></td>
            <td><%: Html.ValidationMessageFor(m => m.Country, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.ContactPhone) %></td>
            <td><%: Html.TextBoxFor(m => m.ContactPhone) %></td>
            <td><%: Html.ValidationMessageFor(m => m.ContactPhone, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Latitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Latitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Latitude, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Longitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Longitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Longitude, "*") %></td>
          </tr>
          <tr>
            <td><input type ="submit" value="Save" /></td>
          </tr>
        </table>
        </fieldset>

    <% } %>

领域
m、 标题)%%>
m、 标题)%%>
m、 标题“*””>
m、 事件日期)%>
m、 事件日期)%>
m、 事件日期,“*”>
m、 说明)%>
m、 说明)%>
m、 说明,“*””>
m、 地址)%%>
m、 地址)%%>
m、 地址,“*””>
m、 国家)%>
m、 国家,查看数据[“国家”]作为选择列表)%>
m、 国家,“*””>
m、 联系人电话)%%>
m、 联系人电话)%%>
m、 ContactPhone,“*””>
m、 纬度)%>
m、 纬度)%>
m、 纬度,“*””>
m、 经度)%%>
m、 经度)%%>
m、 经度,“*””>
下面是我如何在名为create.aspx的文件中使用它的示例

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

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Host a Dinner
</asp:Content>

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

    <h2>Host a Dinner</h2>
    <% Html.RenderPartial("DinnerForm"); %>
    <div>
        <%: Html.ActionLink("Back to List", "Index") %>
    </div>

</asp:Content>

设宴
设宴

从DinnerPerform.ascx底部移除。

从DinnerPerform.ascx底部移除。

注意
文件底部的
?这是
的结束括号,您似乎遗漏了它

添加

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

到刚好低于

<%: Html.ValidationSummary("Please Corrent the Errors and Try Again.") %>

结果表

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.Dinner>" %>

<%: Html.ValidationSummary("Please Corrent the Errors and Try Again.") %>
<% using (Html.BeginForm()) {%>
        <fieldset>
            <legend>Fields</legend>

<table border="0">
          <tr>
            <td><%: Html.LabelFor(m => m.Title) %></td>
            <td><%: Html.TextBoxFor(m => m.Title) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Title, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.EventDate) %></td>
            <td><%: Html.TextBoxFor(m => m.EventDate) %></td>
            <td><%: Html.ValidationMessageFor(m => m.EventDate, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Description) %></td>
            <td><%: Html.TextAreaFor(m => m.Description) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Description, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Address) %></td>
            <td><%: Html.TextBoxFor(m => m.Address) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Address, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Country) %></td>
            <td><%: Html.DropDownListFor(m => m.Country, ViewData["countries"] as SelectList)%></td>
            <td><%: Html.ValidationMessageFor(m => m.Country, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.ContactPhone) %></td>
            <td><%: Html.TextBoxFor(m => m.ContactPhone) %></td>
            <td><%: Html.ValidationMessageFor(m => m.ContactPhone, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Latitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Latitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Latitude, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Longitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Longitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Longitude, "*") %></td>
          </tr>
          <tr>
            <td><input type ="submit" value="Save" /></td>
          </tr>
        </table>
        </fieldset>

    <% } %>

领域
m、 标题)%%>
m、 标题)%%>
m、 标题“*””>
m、 事件日期)%>
m、 事件日期)%>
m、 事件日期,“*”>
m、 说明)%>
m、 说明)%>
m、 说明,“*””>
m、 地址)%%>
m、 地址)%%>
m、 地址,“*””>
m、 国家)%>
m、 国家,查看数据[“国家”]作为选择列表)%>
m、 国家,“*””>
m、 联系人电话)%%>
m、 联系人电话)%%>
m、 ContactPhone,“*””>
m、 纬度)%>
m、 纬度)%>
m、 纬度,“*””>
m、 经度)%%>
m、 经度)%%>
m、 经度,“*””>

注意您在
.ascx
文件底部的
?这是
的结束括号,您似乎遗漏了它

添加

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

到刚好低于

<%: Html.ValidationSummary("Please Corrent the Errors and Try Again.") %>

结果表

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.Dinner>" %>

<%: Html.ValidationSummary("Please Corrent the Errors and Try Again.") %>
<% using (Html.BeginForm()) {%>
        <fieldset>
            <legend>Fields</legend>

<table border="0">
          <tr>
            <td><%: Html.LabelFor(m => m.Title) %></td>
            <td><%: Html.TextBoxFor(m => m.Title) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Title, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.EventDate) %></td>
            <td><%: Html.TextBoxFor(m => m.EventDate) %></td>
            <td><%: Html.ValidationMessageFor(m => m.EventDate, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Description) %></td>
            <td><%: Html.TextAreaFor(m => m.Description) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Description, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Address) %></td>
            <td><%: Html.TextBoxFor(m => m.Address) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Address, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Country) %></td>
            <td><%: Html.DropDownListFor(m => m.Country, ViewData["countries"] as SelectList)%></td>
            <td><%: Html.ValidationMessageFor(m => m.Country, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.ContactPhone) %></td>
            <td><%: Html.TextBoxFor(m => m.ContactPhone) %></td>
            <td><%: Html.ValidationMessageFor(m => m.ContactPhone, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Latitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Latitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Latitude, "*") %></td>
          </tr>
          <tr>
            <td><%: Html.LabelFor(m => m.Longitude) %></td>
            <td><%: Html.TextBoxFor(m => m.Longitude) %></td>
            <td><%: Html.ValidationMessageFor(m => m.Longitude, "*") %></td>
          </tr>
          <tr>
            <td><input type ="submit" value="Save" /></td>
          </tr>
        </table>
        </fieldset>

    <% } %>

领域
m、 标题)%%>
m、 标题)%%>
m、 标题“*””>
m、 事件日期)%>
m、 事件日期)%>
m、 事件日期,“*”>
m、 说明)%>
m、 说明)%>
m、 说明,“*””>
m、 地址)%%>
m、 地址)%%>
m、 地址,“*””>
m、 国家)%>
m、 国家,查看数据[“国家”]作为选择列表)%>
m、 国家,“*””>
m、 联系人电话)%%>
m、 联系人电话)%%>
m、 ContactPhone,“*””>
m、 纬度)%>
m、 纬度)%>
m、 纬度,“*””>
m、 经度)%%>
m、 经度)%%>
m、 经度,“*””>

您的ascx文件末尾有一个未配对的

表格不见了。看起来你忽略了:

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


从顶部开始,就在验证摘要之前。

您的ascx文件末尾有一个未配对的

表格不见了。看起来你忽略了:

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


从顶部开始,就在验证摘要之前。

谢谢,我应该看一下!一旦时间限制到了,我会将此标记为正确答案:)@TaraWalsh-当您将代码移动到ascx文件时,不难忘记复制它。我昨天刚看完那本书,所以对它的记忆还很新鲜:)谢谢你,我应该看看那本!一旦时间限制到了,我会将此标记为正确答案:)@TaraWalsh-当您将代码移动到ascx文件时,不难忘记复制它。我昨天刚看完NerdDinner的书,所以对它还有一个新的记忆:)这会纠正编译错误,但ascx显然是一个表单,所以他需要打开顶部的表单。这会纠正编译错误,但ascx显然是一个表单,所以他需要打开顶部的表单。