C# 获取{“Button”类型的“Control”Button1“的异常必须放置在runat=server的表单标记中。“}
该项目基于.NETFramnework3.5,具有MVC框架1.0 ViewModel是: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
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> <%=@Html.TextBox("pInstance",@Model.processInstance) %></td>
<td width ="50%"> <label for ="Mail Id">Mail Id: </label> <%=@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> <%=@Html.TextBox("sNo") %></td>
<td width ="50%"> <label for ="Name Insured">Name Insured: </label> <%=@Html.TextBox("nameInsured") %> </td>
</tr>
<tr>
<td width="50%"> <label for="Broker Code"> Broker Code: </label> <%=@Html.TextBox("brokerCode") %></td>
<td width ="50%"> <label for ="Broker Name">Broker Name: </label> <%=@Html.TextBox("brokerName") %> </td>
</tr>
<tr>
<td width="50%"> <label for="Product Code"> Product Code: </label> <%=@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标记。这是不受支持的,至少不应该发生。对于按钮,您应该