如何将客户端函数序列化为 json 对象?(类似于剑道控制的工作方式)
这是我目前所拥有的......
看法:
@Html.TestControl(@<text>function(){ alert("test"); }</text>)
控制助手:
public static HtmlString TestControl<TModel>(this HtmlHelper<TModel> helper, Func<object, object> onSubmit)
{
var obj = new {onSubmit = onSubmit.Invoke(null) };
var jsonObj = new JavaScriptSerializer().Serialize(obj);
return new HtmlString(string.Format("<script>var obj = {0};</script>", jsonObj));
}
输出:
<script>var obj = {"onSubmit":{}};</script>
期望的输出:
<script>var obj = {"onSubmit": function(){ alert("test"); }};</script>
我可以看到帮助器中 obj.onSubmit 的值是函数......但是我怎样才能让函数序列化并出现在 json 对象中(作为函数)?
更新:
首选使用 @<text> 定义匿名函数内联。我们使用具有这种语法的 Kendo 控件,目标是保持代码一致。
这是剑道控件语法的示例: http ://docs.kendoui.com/api/wrappers/aspnet-mvc/Kendo.Mvc.UI.Fluent/UploadEventBuilder