我有一个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 });
}
答案 0 :(得分:1)
Microsoft记录了他们发布的大多数类的线程安全性。
以下类列出了注释:
此类型的任何公共静态(Visual Basic中的共享)成员都是线程安全的。不保证任何实例成员都是线程安全的。
答案 1 :(得分:0)
不,它不是线程安全的。
HtmlHelper有一些实例属性,特别是ViewContext和ViewData(通过ViewDataContainer)等。把它放在任何地方都是静态的,这是一个糟糕的主意。