如何通过"#"在MVC中使用AJAX从URL作为参数的字符

时间:2017-07-03 09:45:32

标签: jquery ajax asp.net-mvc asp.net-core asp.net-ajax

我有以下要求 http://localhost:16770/Admin/Category/GetColorByCode/#00aabb

由于此请求包含#,并且未在asp.net core mvc。

中调用控制器方法

这是ajax代码

var ajaxUrl = ApplicationRootUrl("GetColorByCode", "Category") + "/" + self.colorCode();
$.ajax({
         type: "GET",
         contentType: "application/json; charset=utf-8",
         url: ajaxUrl,
         dataType: "json",
         success: function (data) {
           if (data.isSuccess) {

           } else {
                self.Error(true);
                self.message(data.successMessage);
           }

           $('#LoadingImage').hide();
         },
         error: function (err) {

         }

});

服务器端代码

[HttpGet("colorCode")]
public JsonResult GetColorByCode(string colorCode)
{ 
}

由于查询字符串包含#,因此未调用控制器方法。我知道这是因为#。我想通过#。怎么可能,我在asp.net核心中使用ajax实现了这个。

1 个答案:

答案 0 :(得分:0)

我添加了NetFiddle。它有效here

您可以将<me.grantland.widget.AutofitTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:maxLines="2" android:textSize="40sp" autofit:minTextSize="16sp" /> 与javascript Url.Action()功能一起使用,然后在控制器端使用encodeURIComponent()函数解码"#value",如下所示。

<强> // jquery的

Server.UrlDecode()

<强> //控制器

var ajaxUrl = '@Url.Action("GetColorByCode", "Home")' + '?value='  + encodeURIComponent('#value');
$.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        url: ajaxUrl,
        dataType: "json",
        success: function (result) {
        console.log(result);
        if (result.isSuccess) {
            alert(result.data)
        } else {
            self.Error(true);
            self.message(data.successMessage);
        }

                    $('#LoadingImage').hide();
        },
        error: function (err) {

        }                   
});