在C#Webform中提供元素自定义属性的最佳方法

时间:2017-01-18 09:44:53

标签: c# asp.net webforms vue.js

我有一个像这样的通用html元素

<span v-bind:class="{ available: days.timeOne }" data-time="10:00" data-date="{{ days.date }}" class="home__visit-featured-days-item-buttons-time">10:00</span>

在渲染时,正在删除vuejs标记。

我在使用基本的html元素甚至控制标签之前遇到过这个问题,我的解决方案是在后面的代码中手动添加它们。我不喜欢这种方法,因为它不仅冗长乏味,而且将结束逻辑与视图联系起来。

是否有类似于ClientIDMode的属性可用于阻止这些标记被剥离?

2 个答案:

答案 0 :(得分:4)

当属性包含冒号(:)字符时,ASP.NET webforms将剥离服务器控件(具有runat="server"的控件)的属性,因为这些属性无法转换为后端的类属性。但是,非服务器控件(即原始标记)应该只是呈现为写入ascx文件。

您的示例没有runat="server"属性,因此我希望它以书面形式呈现。但是,如果它是服务器控件,您可以只使用原始标记吗?

如果它必须是服务器控件,我认为您唯一的选择是在您提及的代码中添加您的属性,例如myControl.Attributes.Add("v-bind:class", "{ available: days.timeOne }");

答案 1 :(得分:0)

我想您使用CK编辑器输入HTML代码。我不推荐这样做,因为它是WYSIWYG,而不是代码编辑器,并且可以完成剥离源代码的某些部分。如果可以,请将代码移动到静态文本Web部件或直接移动到布局。如果您需要在可编辑区域区域内,可以为CK编辑器指定受保护的源,让它知道不要触摸的代码:

https://www.google.com/search?q=ckeditor%20protectedsource&rct=j