Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从路由';使用asp.net mvc和razor模板引擎在c#中命名?_C#_Asp.net Mvc_Asp.net Mvc 4_Razor_Asp.net Mvc 5 - Fatal编程技术网

如何从路由';使用asp.net mvc和razor模板引擎在c#中命名?

如何从路由';使用asp.net mvc和razor模板引擎在c#中命名?,c#,asp.net-mvc,asp.net-mvc-4,razor,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Asp.net Mvc 5,我试图在razor模板中获取已知路由名称的url 这是我的部分观点 @model ScripterEngine.ViewModels.CampaignViewModel <script type="text/javascript"> function logTime(stage, status, async){ var target = "@UrlHelper.RouteUrl("timetracker.clockin")"; var

我试图在razor模板中获取已知路由名称的url

这是我的部分观点

@model ScripterEngine.ViewModels.CampaignViewModel

<script type="text/javascript">

    function logTime(stage, status, async){

        var target = "@UrlHelper.RouteUrl("timetracker.clockin")";

        var postData =
        {
            'campaign_id': @Model.id,
            'agent_id': is_system_agentid.value,
            'log_id': is_attr_calldata.tracker_id,
            'stage_name': stage
        };

        if( status == 'out'){
            target = "@UrlHelper.RouteUrl("timetracker.clockout")";
        }

        if( async !== false){
            async = true;
        }

        $.ajax({
            type: 'POST',
            url: target,
            data: postData,
            async: async,
            dataType: "json",
            error: function( jqXHR, textStatus, errorThrown ){

                alert('clock ' + status + ' failed!' + jqXHR.status );
            },
            success: function(data){

                if(data && data.id && status != 'out'){
                    is_attr_calldata.tracker_id  = data.id;
                }

            }
        });
    }

</script>   
但是,在启动程序并导航到路由后,我得到一个编译错误

编译错误说明:编译过程中发生错误 编译服务此请求所需的资源。请 查看以下特定错误详细信息并修改源 适当地编码

编译器错误消息:CS0120:编译器需要对象引用 非静态字段、方法或属性 'System.Web.Mvc.UrlHelper.RouteUrl(字符串)'

此行的错误点

var target = "@UrlHelper.RouteUrl("timetracker.clockin")";

如何从给定的路由名称中正确获取Url?

视图中显示的
UrlHelper
@Url
-用于
WebViewPage
的代码有:

public UrlHelper Url { get; set; }
尝试:


@是的。这不重要。外部双引号是简单的,内部将在服务器端执行。谢谢。这就成功了。由于这只返回URI而不包含域,我需要在html中添加一个基本标记吗?我个人不需要,这会使跨环境(开发、测试、登台、生产等)的部署变得更加棘手。除非你有一个令人信服的理由?我只是想确保我可以把这个URI放在网站的任何地方,它会把用户带到URL你应该可以。。。我从未在应用程序中使用base,但YMMV.:-)它应该计算出正确的相对url。
public UrlHelper Url { get; set; }
var target = '@Url.RouteUrl("timetracker.clockin")';