在javascript中使用razor语法

时间:2014-08-11 08:49:34

标签: javascript asp.net-mvc razor

我尝试使用HTTP上下文razor方法来映射javascript代码块中的服务器路径。然而,它导致"非法字符"的异常。我不确定要包含哪些字符,所以剃刀将其视为c#。

    $(document).ready(function () {
    $('#StudentTableContainer').jtable({
        title: 'Asset Classes',
        paging: true,
        sorting: true,
        pageSize: 25,
        defaultSorting: 'Name ASC',
        actions: {
            listAction: '@(HttpContext.Current.Server.MapPath("GetAssetData?prod=funds"))'
        }
      });
    });

1 个答案:

答案 0 :(得分:2)

Javascript中的剃刀语法没有问题,您在querystring中发送了server.mappath这是错误的: -

它应该是这样的:

 actions: {
            listAction: '@(HttpContext.Current.Server.MapPath("~/GetAssetData"))'
        }

而不是

actions: {
            listAction: '@(HttpContext.Current.Server.MapPath("~/GetAssetData?prod=funds"))'
        }

这就是"illegal characters"错误即将发生的原因。

就我理解你的问题而言,我认为你想在listAction中给出一个动作的路径然后这样做:

actions: {
            listAction: '@(Url.Action("action name","controller name",new { prod="funds" }))'
        }