Kentico 自定义转换函数抛出错误。
这是我的转换函数调用:Kentico 自定义转换函数抛出错误。,kentico,Kentico,这是我的转换函数调用: <p><%# MyFunctions.getDocumentCategory(Eval("DocumentID"))%></p> 这就是错误: MyFunctions.getDocumentCategory(int) has some invalid arguments. 我尝试了另一种形式的函数,它接受字符串而不是整数,但它抛出了相同的错误。我已经验证了Eval(“DocumentID”)单独放置时是否正常工作。有什么想法吗?E
<p><%# MyFunctions.getDocumentCategory(Eval("DocumentID"))%></p>
这就是错误:
MyFunctions.getDocumentCategory(int) has some invalid arguments.
我尝试了另一种形式的函数,它接受字符串而不是整数,但它抛出了相同的错误。我已经验证了
Eval(“DocumentID”)
单独放置时是否正常工作。有什么想法吗?Eval返回一个对象。您需要将其转换为int
,或者更改函数以接受对象
,然后将该对象
转换为int
<p><%# MyFunctions.getDocumentCategory( Convert.ToInt32( Eval("DocumentID") ) )%></p>
感谢Doozer的精彩解释和示例
第二种方法——接受对象并在自定义函数内进行转换——可能更好地保持转换代码的整洁。结果是一样的
只需添加一点-您可以使用Kentico的ValidationHelper进行转换,例如:
转变:
<%# MyFunctions.getDocumentCategory(Eval("DocumentID"))%>
public static string getDocumentCategory(object document)
{
int documentID = Convert.ToInt32( document );
etc...
}
<%# MyFunctions.getDocumentCategory(Eval("DocumentID"))%>
public static string getDocumentCategory(object docID)
{
int documentID = ValidationHelper.GetInteger(docID, 0); //0 is the default value
...