在ASP.NET MVC 4 HtmlHelpers中呈现ASP.NET web控件
我正在ASP.NET MVC 4中创建自定义HtmlHelper,它需要呈现ASP.NET标准web控件,如在ASP.NET MVC 4 HtmlHelpers中呈现ASP.NET web控件,asp.net,asp.net-mvc-4,razor,Asp.net,Asp.net Mvc 4,Razor,我正在ASP.NET MVC 4中创建自定义HtmlHelper,它需要呈现ASP.NET标准web控件,如或。我的意思是:从我的HtmlHelper,我希望我的浏览器将它们呈现为与ASP.NET web表单应用程序相同的内容 我在网上搜索这个话题,但没有找到任何具体的东西可以帮助我实现这一点 如果有人知道这是如何实现的,或者有过这方面的经验,请分享:)如果有人有类似的问题或者想知道如何实现,这是我的代码 public static MvcHtmlString Panel(this HtmlHe
或
。我的意思是:从我的HtmlHelper,我希望我的浏览器将它们呈现为与ASP.NET web表单应用程序相同的内容
我在网上搜索这个话题,但没有找到任何具体的东西可以帮助我实现这一点
如果有人知道这是如何实现的,或者有过这方面的经验,请分享:)如果有人有类似的问题或者想知道如何实现,这是我的代码
public static MvcHtmlString Panel(this HtmlHelper html)
{
Panel pnl = new Panel();
pnl.ID = "mainPanel";
pnl.BorderStyle = BorderStyle.Solid;
pnl.BorderWidth = Unit.Pixel(1);
pnl.BorderColor = System.Drawing.Color.Black;
Label lblTitle = new Label();
lblTitle.Text = "Title";
TextBox txtTitle = new TextBox();
txtTitle.ID = "txtTitle";
lblTitle.Attributes.Add("for", "txtTitle");
Label lblMessage = new Label();
lblMessage.Text = "Message";
TextBox txtMessage = new TextBox();
txtMessage.TextMode = TextBoxMode.MultiLine;
txtMessage.ID = "txtMessage";
Label lblDepartment = new Label();
lblDepartment.Text = "Department";
DropDownList lstDepartment = new DropDownList();
lstDepartment.ID = "lstDepartment";
ListItemCollection collection = new ListItemCollection();
collection.Add(new ListItem("Department1"));
collection.Add(new ListItem("Department3"));
collection.Add(new ListItem("NoDepartment"));
lstDepartment.DataSource = collection;
lstDepartment.DataBind();
pnl.Controls.Add(lblTitle);
pnl.Controls.Add(txtTitle);
pnl.Controls.Add(lblMessage);
pnl.Controls.Add(txtMessage);
pnl.Controls.Add(lblDepartment);
pnl.Controls.Add(lstDepartment);
HtmlTextWriter writer = new HtmlTextWriter(new StringWriter());
pnl.RenderControl(writer);
return MvcHtmlString.Create(writer.InnerWriter.ToString());
}
基本上,您使用所需的web控件类并创建
HTML
HtmlTextWriter
用于呈现为此目的而编写的内容。在ASP.NET MVC
中,没有任何控件类似于服务器端控件。不要将ASP.NET web表单
与ASP.NET MVC
@wiz kid连接我知道MVC不使用服务器端控件。我只是在寻找一种方式,让我的浏览器能够像创建ASP.NET web表单时那样呈现这些表单。我想你要求的是一个ASP:按钮的等价物。MVC中没有@html.button。为此,您需要使用Html按钮。有关更多信息,请参阅本页。不,正如我所写的,我在问如何生成标准的web控件。无论如何,我找到了一个解决方法:)谢谢你的帮助伟大的一个,很快就会尝试!!