【发布时间】:2015-02-20 19:40:44
【问题描述】:
我正在使用 C# 辅助方法来检查输入字段的值是否应该预填充。但是,当返回值时,所有特殊字符都已替换为 html(即:& 现在是 &)。我正在寻找一种将其改回特殊字符的方法(即:将ab&c 改回ab&c)。我试过 HtmlDecode 但它对返回的值没有任何影响。
输入字段:
<input type="text" class=" form-textbox" id="input_4" name="q4_1Property" size="40" value="@Helpers.checkEmptyPreFill(queryinputvalue,"q4_1Property","ab&c")"/>
辅助方法:
@helper checkEmptyPreFill(IEnumerable<dynamic> queryinputvalue, string field_id, string defaultval, int cloned = 0) {
var reqValue = queryinputvalue.FirstOrDefault(r => r.field_name.Equals(field_id));
var return_value = "";
if(reqValue != null){
return_value = reqValue.field_data;
} else {
return_value = defaultval;
}
if(cloned == 1){
return_value = "";
}
@return_value
}
【问题讨论】:
-
HtmlDecode 应该没问题,你尝试了什么?
-
我在 helpermethod 中的 return_value 和 defaultval 上尝试了 HttpUtility.HtmlDecode()
-
你返回函数的结果了吗?它不会改变原始字符串。
-
是的,我返回了函数的结果。但是在数据库中 & 中的值,当它从辅助方法返回时,它已更改为 &
-
如果你的字符串是 "&" 可能有其他原因,它不会被转换为
&amp;看看这个 mvc fiddle dotnetfiddle.net/V3RkWM
标签: c# .net asp.net-mvc razor html-helper