C# 获取{“Button”类型的“Control”Button1“的异常必须放置在runat=server的表单标记中。“}

C# 获取{“Button”类型的“Control”Button1“的异常必须放置在runat=server的表单标记中。“},c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,该项目基于.NETFramnework3.5,具有MVC框架1.0 ViewModel是: namespace MockBDPWorkflowTestApp.ViewModels { public class WorkFlowTestViewModel { public string processInstance { get; set; } public string mail { get; set; } public String[,] produc

该项目基于.NETFramnework3.5,具有MVC框架1.0 ViewModel是:

namespace MockBDPWorkflowTestApp.ViewModels


{
    public class WorkFlowTestViewModel
   {
    public string processInstance { get; set; }
    public string mail { get; set; }
    public String[,] productCode = { { "GL", "0" }, { "PROP", "1" }, 
                       { "Auto", "2" }, { "Other", "3"},
                       { "Multi", "4" } };

    public List<SelectListItem> products;
    }
}
控制器是:

 public class WorkFlowTestController : Controller
{
    //
    // GET: /WorkFlowTest/

    public ActionResult OpenSubmission(string processId, string mailId)
    {
        var SubmissionModelView = new MockBDPWorkflowTestApp.ViewModels.WorkFlowTestViewModel{processInstance =processId,  mail =mailId} ;
        SubmissionModelView.products = new List<SelectListItem>();
        SubmissionModelView.products.Add(new SelectListItem { Text = "GL", Value = "0", Selected = true });
        SubmissionModelView.products.Add(new SelectListItem { Text = "Property", Value = "1" });
        SubmissionModelView.products.Add(new SelectListItem { Text = "Package", Value = "2" });
        SubmissionModelView.products.Add(new SelectListItem { Text = "Island Marine", Value = "3" });
        return View("Submission", SubmissionModelView);

    }

}
意见是:

<%@ Page Language="C#"     Inherits="System.Web.Mvc.ViewPage<MockBDPWorkflowTestApp.ViewModels.WorkFlowTestViewModel>" %>
  <!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 id="Head1" runat="server">

<title>Submission</title>

 </head>

<body>

  <div>

    <% using (Html.BeginForm())
      {
        %>
        <div>
            <table >
             <tr>
              <td>
               <div id="SID">
                   <table id="tblID" cellpadding ="0" cellspacing ="0" border="1">
                    <tr>
                        <td width ="50%"> <label for="Process Inastance Id"> Process Inastance Id: </label> &nbsp;&nbsp; <%=@Html.TextBox("pInstance",@Model.processInstance) %></td>
                        <td width ="50%"> <label for ="Mail Id">Mail Id: </label> &nbsp;&nbsp; <%=@Html.TextBox("mail",@Model.mail) %> </td>
                    </tr>
                </table>
            </div>
            <br /><br />
            <table id="tblDet" cellpadding ="0" cellspacing ="0" >
                <tr>
                    <td width="50%"> <label for="Submission Number"> Submission Number: </label> &nbsp;&nbsp; <%=@Html.TextBox("sNo") %></td>
                    <td width ="50%"> <label for ="Name Insured">Name Insured: </label> &nbsp;&nbsp; <%=@Html.TextBox("nameInsured") %> </td>
                </tr>
                <tr>
                    <td width="50%"> <label for="Broker Code"> Broker Code: </label> &nbsp;&nbsp; <%=@Html.TextBox("brokerCode") %></td>
                    <td width ="50%"> <label for ="Broker Name">Broker Name: </label> &nbsp;&nbsp; <%=@Html.TextBox("brokerName") %> </td>
                </tr>
                 <tr>
                    <td width="50%"> <label for="Product Code"> Product Code: </label> &nbsp;&nbsp; <%=@Html.DropDownList("prodlist",@Model.products)%></td>
                    <td width ="50%"> <asp:Button ID="Button1" runat ="server"  Text ="Add Product" /> </td>
                </tr>
            </table>
         </td>
        </tr>
       </table>
    </div>

<% } %>
</div>

在视图中,我找到了HTMLhelper dropdownlist,但在运行时它给出了一个异常{Control'Button1'类型的'Button'必须放置在runat=server的表单标记中。}


在MVC Framework 1.0中,创建列表项下拉框的最佳方法是什么。

用纯HTML或元素替换您的列表项。

您混合了两种不同的Microsoft技术。是webforms,无法在ASP.NET MVC视图中正确运行。您正在混合ASP.NET MVC和ASP.NET标记。这是不受支持的,至少不应该发生。对于按钮,您应该