Как исправить проблему с косой чертой "/" в маршрутизации атрибутов MVC? - PullRequest
1 голос
/ 20 апреля 2019

У меня есть фиксированная ссылка для моего проекта, такая как

Ссылка: домен / контроллер / имя-фамилия /

Где Url_name = 'firstname-lastname' является параметром, поэтому я имелиспользовать атрибутную маршрутизацию, чтобы скрыть действие от URL.

Список поступает со страницы 1, и есть список ссылок для другого пользователя Как

<a class="artist" id=' + data.Id + ' href="Contr/' + data.Url_name + '">' NAME </a>

1.домен / контроллер/ firstname1-фамилия /

2.домен / контроллер / firstname2-фамилия /

.....

Затем, когда пользователь нажимает на систему ссылок, происходит переход квторая страница (страница 2) только с именем Url_name.

[Route("Contr/{name}")]
public ActionResult Index(string name)
{
    return View();
}

В этот момент, когда представление загрузит их в Javascript, я попытался взять имя из URL-адреса, например

var url = document.URL;
var lastChar = url[url.length - 1];
var name;
var splittedStr = url.split('/');
if (lastChar !== "/") 
{       
    name = splittedStr[splittedStr.length - 1];
} 
else 
{       
    name = splittedStr[splittedStr.length - 2];
}

Затем я вызываю другое действие через ajax (сторона сценария), чтобы получить данные для отображения.

var url = "GetData/" + name + "/" + artistId + "/" + direction + "";
$.ajax({
        url: url,
        type: "GET",
        dataType: 'json',

        // data: { artistId: artistId, 'direction': 'none' },
        contentType: 'application/json; charset=utf-8',

        success: function (data) {
            $("#hidId").val(data.Id);
            $("#aName").html(data.Vorname + " " + data.Name);
            //and so on.
        }
});

Соответствующее действие в контроллере:

[Route("Contr/GetData/{name?}/{aId:int?}/{direction?}")]       
public ActionResult GetData(string name,int? aId, string direction)
{ 
    //searcing code for coming paraeter
}

Моя проблема, в ссылке, если нет косой черты ("/") в хвосте, то все работает коррectly.Но если есть, то вызов объединяется с существующим URL-адресом, например

домен / контроллер / имя-имени-фамилии / GetData / name / 0 / none

И это не таквызов действия GetData в контроллере.Может ли кто-нибудь помочь в этой ситуации ??

1 Ответ

0 голосов
/ 20 апреля 2019

Я не знаю, правильный ли это путь или нет, но я решил проблему, сбросив URL без косой черты ("/")>

window.location = url.substr(0, url.length-1);

, насколько я знаю, если естьявляется косой чертой ("/"), то он ждет следующей строки, чтобы добавить для атрибута маршрутизации.это была проблема !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...