4
我想要做的就是能够在.cshtml文件中写入与剃刀风格标记和方法混合的javascript,并将其发送给一个单独的方法供以后使用。如何将包含剃须刀标记的内容用作方法的参数?
我的.cshtml看起来是这样的:
@{SomeClass.SaveForLater(@<script type="text/javascript">window.alert('@Model.SomeParamter')}</script>);
和类SomeClass的内部:
public static void SaveForLater(HtmlString str) {
// will be using str.ToString() here and save the string output for use later on.
}
但我收到这是什么错误消息:
CS1660:不能lambda表达式转换为键入'System.Web.HtmlString',因为它不是委托类型
我是使用错误类型的参数或d o我需要重新思考整个概念?
解决方案 感谢SLaks下面我落得这样做:
public static void SaveForLater<T>(Func<T, HelperResult> template, dynamic model)
{
// template(model).ToHtmlString()
}
使用这样的:
@{SomeClass.SaveForLater<SomeModel>(
@<script type="text/javascript">window.alert('@Model.SomeParamter')</script>,
Model
);
感谢您指引我朝着正确的方向发展,但是如果看一下我的例子,代表什么是“什么”类? –
@MattiasHögnäs:任何你想要的。它将被传递给行动;看我的博客文章。如果你不想传递任何东西,只需使用'object'。 – SLaks