Html Helper方法是线程安全的吗?

时间:2013-11-26 13:04:45

标签: c# asp.net-mvc html-helper

我有一个Html辅助方法,它在内部调用Html.Action(“action”,“controller”)。我担心这个辅助方法是否是线程安全的,或者如果用户数达到10 K,它就有可能弄乱输出。

注意:抱歉当我发布此问题时出现了问题,因此代码被遗漏了。

 public static MvcHtmlString FormHelper(this HtmlHelper html, string id, TemplateField field, string retunUrl = "")
        {
            var fieldid = (new KeyValuePair<string, string>("template-field-id", field.Id));
            var editid = (new KeyValuePair<string, string>("data-edit-id", field.TemplateId.ToString()));
            var name =
                field.AttributesLists.FirstOrDefault(x => x.Name.Equals("name", StringComparison.InvariantCultureIgnoreCase));
            var url =
                field.AttributesLists.FirstOrDefault(
                    x => x.Name.Equals("returnurl", StringComparison.InvariantCultureIgnoreCase));
            if (url != null && !string.IsNullOrWhiteSpace(url.Value))
            {
                // save return url in session
                retunUrl = url.Value;
            }
            return name == null ? new MvcHtmlString(string.Empty) : html.Action("WidgetsByZone", "Widget", new { widgetZone = name.Value, url = retunUrl });
        }

2 个答案:

答案 0 :(得分:1)

Microsoft记录了他们发布的大多数类的线程安全性。

以下类列出了注释:

  

此类型的任何公共静态(Visual Basic中的共享)成员都是线程安全的。不保证任何实例成员都是线程安全的。

答案 1 :(得分:0)

不,它不是线程安全的。

HtmlHelper有一些实例属性,特别是ViewContext和ViewData(通过ViewDataContainer)等。把它放在任何地方都是静态的,这是一个糟糕的主意。