加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何使用asp.net mvc和razor模板引擎从c#中获取路由名称的URL?

发布时间:2020-12-16 09:55:46 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在剃刀模板中获取已知路由名称的URL. 这是我的部分观点 @model ScripterEngine.ViewModels.CampaignViewModelscript type="text/javascript" function logTime(stage,status,async){ var target = "@UrlHelper.RouteUrl("timetracker.clockin")";
我正在尝试在剃刀模板中获取已知路由名称的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>

这是我的路线映射

//Timetracker - ClockIn
        routes.MapRoute(
            "timetracker.clockin","timetracker/clockin",new { controller = "TimeTracker",action = "ClockIn" }
        );

        //Timetracker - ClockOut
        routes.MapRoute(
            "timetracker.clockout","timetracker/clockout",action = "ClockOut" }
        );

但是,在启动程序并导航到路径后,我收到编译错误.

Compilation Error Description: An error occurred during the
compilation of a resource required to service this request. Please
review the following specific error details and modify your source
code appropriately.

Compiler Error Message: CS0120: An object reference is required for
the non-static field,method,or property
‘System.Web.Mvc.UrlHelper.RouteUrl(string)’

此行的错误点

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

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

解决方法

UrlHelper在视图上公开为@Url – WebViewPage的代码具有:

public UrlHelper Url { get; set; }

尝试:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读