asp.net aspx 页面上的 mvc 错误

asp.net mvc Error on aspx page

我遇到了唯一的 asp.net 运行时错误 "content controls are allowed directly in a content page that contains content controls."

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

    <% using (Html.BeginForm("", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
       {%>

    <input type="file" name="FileUpload" />
    <input type="submit" name="Submit" id="Submit" value="Upload" />

<% }
        System.Data.DataTable dt = (System.Data.DataTable) (ViewData["dt"]);
        if (dt != null && dt.Rows.Count > 0)
        {
            foreach (System.Data.DataRow dr in dt.Rows)
            {
                for (int i = 0; i < dt.Columns.Count ; i++)
                {%>

  <span><%= dr[i].ToString()%></span>
        <% }%>
           <br/>
            <%}
        }%>


</asp:Content>

"content controls are allowed directly in a content page that contains content controls."

您收到此错误是因为您已将服务器控件添加到视图中:

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

这需要 ViewState (webforms) 这样的概念在 ASP.net MVC 中不存在。

举个例子,您的视图如下所示:

查看

@model YourProject.YourModel

@using (Html.BeginForm("", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="FileUpload" />
    <input type="submit" name="Submit" id="Submit" value="Upload" />
}

@foreach (var item in YourModel.data)
{
    <span>@item</span>
}

在您的控制器中放置逻辑。

在您的模型中,您将为您的对象放置属性。

切勿在您的视图中操作数据。