标签: mvchtmlstring

如何连接几个MvcHtmlString实例

我对如何连接MvcHtmlString实例有一些疑问,因为在MSDN中找到了这些信息:

MvcHtmlString类表示不应再次编码的HTML编码字符串

使用这样的代码时,我冒险将字符串HTML编码两次:

var label = Html.LabelFor(model => model.Email);
var textbox = Html.TextBoxFor(model => model.Email);
var validation = Html.ValidationMessageFor(model => model.Email);

var result = MvcHtmlString.Create(
  label.ToString() + textbox.ToString() + validation.ToString());
Run Code Online (Sandbox Code Playgroud)

(注意:这应该进入HtmlHelper扩展方法以减少视图中的代码重复).

html-helper mvchtmlstring asp.net-mvc-2

68
推荐指数
3
解决办法
3万
查看次数

在ASP.NET MVC中构建HtmlStrings

我有一个需要返回HtmlString的扩展方法.该方法有一个循环,它将构建HtmlString,但是HtmlString对象没有Append方法,并且不允许使用+运算符进行连接,所以我不确定如何构建HtmlString.

我想使用StringBuilder,但它没有ToHtmlString方法......

这个的任何解决方案或模式?

asp.net-mvc mvchtmlstring

11
推荐指数
2
解决办法
1万
查看次数

TagBuilder.MergeAttributes无法按预期工作

我正在尝试制作一个HtmlHelper,我需要允许用户将自己的自定义属性添加到html标记中.

我尝试使用TagBuilder类来做到这一点,但似乎不是合并属性,而是替换它们.

这就是我在C#中所做的:

public static MvcHtmlString List(HtmlHelper helper, object htmlAttributes)
{
    var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);

    var tag = new TagBuilder("div");
    tag.AddCssClass("myClass");
    tag.MergeAttributes(attributes, false);

    // tag class property has value "myClass", not "myClass testClass"

    return new MvcHtmlString("<div>");
}
Run Code Online (Sandbox Code Playgroud)

这是我的看法:

@Html.List(new { @class = "testClass" })
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# asp.net-mvc html-helper mvchtmlstring

9
推荐指数
2
解决办法
8764
查看次数

将PartialView Html转换为ITextSharp HtmlParser的字符串

我有一个局部视图,我正在尝试使用ITextSharp将html转换为pdf.如何将html转换为字符串,以便我可以使用ItextSharps HtmlParser?

我尝试过这样的事情没有运气......任何想法?:

 var contents = System.IO.File.ReadAllText(Url.Action("myPartial", "myController", new { id = 1 }, "http"));
Run Code Online (Sandbox Code Playgroud)

pdf itextsharp mvchtmlstring asp.net-mvc-3

4
推荐指数
1
解决办法
5467
查看次数

如何加载partialview并将其存储在要在javascript中使用的变量中?

我有一个使用模型创建下拉列表的prtialview。在我的主视图中,我创建了partialview html字符串,以便稍后在javascript函数中使用它。

视图:

@model SomeViewModel
@{ 
var devicesDropDown = @Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes));
var devicesHtmlDropDown = MvcHtmlString.Create(devicesDropDown.ToString());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我想以这种方式在javascript中使用它时,它就像是导致javascript函数出错的未连接字符串。

js函数位于页面的底部:

<script type="text/javascript">
   function format(d) {
       var ddl = '@( devicesHtmlDropDown)';
       return ddl;
   }
</script>
Run Code Online (Sandbox Code Playgroud)

这是运行时字符串的样子:

 var ddl = '<select class="form-control input" id="SelectedValue"  name="SelectedValue" style="width: 100%">
<option selected="selected" value="456413">1</option>
<option value="564655465">2</option>
</select>
';
Run Code Online (Sandbox Code Playgroud)

我应该如何格式化此字符串以使其可以像静态html对象一样呈现。以及如何检索此下拉菜单的选定值以发布到操作?我应该使用TagBuilder吗?

javascript asp.net-mvc partial-views tagbuilder mvchtmlstring

3
推荐指数
1
解决办法
1160
查看次数

ASP.NET MVC - 如何构建一个不需要在MvcHtmlString中包装的HtmlHelper?

当我在Html Helpers中使用构建时,我可以简单地编写以下内容.

@Html.Actionlink(bla)
Run Code Online (Sandbox Code Playgroud)

但是当我编写自己的Html Helpers时,我需要通过将其包装在一个中来阻止编码 MvcHtmlString

@MvcHtmlString.Create(Html.CustomPager(bla))
Run Code Online (Sandbox Code Playgroud)

我可以在扩展方法中做些什么,这样我就不用担心"不"编码吗?

asp.net-mvc razor mvchtmlstring

2
推荐指数
1
解决办法
520
查看次数

MVC SelectList vs MultiSelectList

在MVC中,SelectList派生自MultiSelectList.我不能说出他们之间的区别.对于两者,我必须告诉它选择多个项目(我希望不必这样做,因为名称中有"multi").

如果在下面的代码中用"MultiSelectList"替换"SelectList",它将生成相同的HTML:

<% 
var leftSelectList = new SelectList(Model.LeftSide,"Key","Value");
var attrs = new SortedDictionary<string, object> {{"class", "ui-widget"}};
MvcHtmlString disabledStyle = MvcHtmlString.Create(Html.Encode("'width:50px;'"));
attrs.Add("style", disabledStyle);
attrs.Add("multiple", "multiple");
attrs.Add("size", "5"); /*-- how many items to show--*/        
var leftItems =  Html.DropDownList("ddlLeftItems", leftSelectList, attrs); %>

<%= leftItems.ToHtmlString()%>
Run Code Online (Sandbox Code Playgroud)

生成的HTML是:

<select class="ui-widget" id="ddlLeftItems" multiple="multiple" name="ddlLeftItems" size="5" style="&amp;#39;width:50px;&amp;#39;">
  <option value="1">A</option>
  <option value="2">B</option>
  <option value="3">C</option>
  <option value="5">E</option>
  <option value="9">I</option>
</select>
Run Code Online (Sandbox Code Playgroud)

那么,我应该使用哪一个?谢谢.

selectlist multi-select mvchtmlstring asp.net-mvc-2

1
推荐指数
1
解决办法
3499
查看次数