我正在尝试获得类似于将html标记传递到ASP.NET用户控件的工作,除了我不使用MVC,并且该答案似乎不再起作用,当我复制该代码并尝试按原样使用它时,我会遇到500个错误。
我需要将用户控件添加到一个页面,该页面使用类似于模板(类似于Angular模板)的内容,需要其中的多个HTML标记。然后,我需要抓住那些HTML的部分并将其注入其余的结构中。我还需要能够抓住属性类似的属性,并也注入其值。
例如,这是我将要让开发人员插入ASPX页面:
<uc:FlexImgContent runat="server" FlexImgClasses="col-sm-4 col-lg-3" FlexContentClasses="col-sm-8 col-lg-9">
<FlexImage>
<img class="img-responsive" width="100%"
src="assets/images/img.png"
alt="A descriptive alt tag">
</FlexImage>
<FlexContent>
<h3>An h3 title (could be h2, h4 as well, hence the need for html)</h3>
<p>A block of content following. There could be more...</p>
<button class="btn" type="button">Like a button!</button>
</FlexContent>
</uc:FlexImgContent>
在.ASCX控件中,我会有类似的东西:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FlexImgContent.ascx.cs" Inherits="OUR.DOMAIN.STUFF.Core.CommonControl" %>
<div class="flexible row">
<div class="<%= this.FlexImgClasses %>">
<figure>
<%= this.FlexImage %>
</figure>
</div>
<div class="<%= this.FlexContentClasses %>">
<%= this.FlexContent %>
</div>
</div>
然后在后面的代码中,我尝试了很多东西,主要是试图模拟上面链接的html标记答案,但无法正常工作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Sdc.Server.StampsWebsite._Controls
{
[ParseChildren(true, "FlexImage")] // How do I get multiple bits of data here, like FlexImage, FlexContent, FlexImgClasses, FlexContentClasses, etc?
public partial class FlexImgContent : System.Web.UI.UserControl
{
// Do I need this for each public string?
[PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)]
public string FlexImage { get; set; }
public string FlexContent { get; set; }
// From other answers, I know these are wrong but am thoroughly confused at how to get this right
public string FlexImageClasses { get; set; }
public string FlexContentClasses { get; set; }
// Does anything need to go into the page load?
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
这里的另一种方法是根据您的需求显示一堆文字控件。如果您需要的话,您甚至可以从后面的代码中动态设置其内容。