Как изменить URL ASPC MVC - PullRequest
1 голос
/ 21 июля 2009

Существует ли простой способ создания нового URL-адреса маршрута без всего этого.

В настоящее время я работаю с несколькими маршрутами в одном и том же виде, каждый из которых заканчивается / {PageNumber}

Все, что я пытаюсь сделать, это удалить все обратно до последней обратной косой черты и заменить число.

Я пытался избежать использования URL Maker, так как это выглядит немного излишне для нумерации страниц, но все предложения приветствуются & hellip;

Вот метод, который я использую для нумерации страниц

#region Create View Pagination
/// <summary>
/// Create Pagination For Display
/// </summary>
/// <param name="TotalPgs"></param>
/// <param name="currentPg"></param>
/// <returns></returns>
private string pagnationStr(int TotalPgs, int currentPg)
{
    string tmp = "";
    string URLX = "";

    URLX = string.Format("{0}", base.Request.Url);

    int pageSet = 10;

    //Previous Link
    if (currentPg > 1) tmp += "<li><a href='" + URLX + (currentPg - 1) + "'>Previous</a></li>";

    //Standard Pagination
    tmp += "<ul class=\"pagination\">";
    for (int i = currentPg; i < TotalPgs; i++)
    {
        tmp += "<li><a href='" + URLX + i + "'>" + i.ToString() + "</a></li>";
        if (pageSet < 1) break;
        pageSet--;
    }
    tmp += "</ul>";

    return tmp;
}
#endregion
  • различные части этого обычно приходят из настроек приложения, я заменил их числами, чтобы завершить.

1 Ответ

3 голосов
/ 21 июля 2009

Маршрутизация работает двумя способами - она ​​принимает URL-адрес запроса и соответствует правильному ресурсу, или вы можете попросить маршрутизацию сгенерировать вам URL на основе имеющихся у вас параметров.

RouteCollection.GetVirtualPath(
                                context, 
                                new RouteValueDictionary(
                                       {param1name, param1value},
                                       {param2name, param2value}...
                                 )
                               );

В результате вы получите URL-адрес требуемого ресурса на основе значений параметров.
Если вы передадите «controller» = «what», «action» = «what» и «pagenumber» = currentpg, вы должны получить нужный URL-адрес, не анализируя его вручную. Это также более масштабируемо, если ваши маршруты изменятся в будущем.

Любые дополнительные параметры, передаваемые в GetVirtualPath, которые не используются сопоставлением маршрутов, будут добавлены в качестве параметров строки запроса.

...