Как получить добавить строку запроса в actionLink? - PullRequest
0 голосов
/ 29 октября 2018

Ссылка ниже дает следующий URL: http://localhost:11111/files/Details/3

  @Html.ActionLink("Details", "Details", "mycontroller", new { id = item.id },null)

Но я пытаюсь получить параметр URL, подобный этому http://localhost:11111/files/Details?id=3 или http://localhost:11111/files/Details.aspx?id=3

Как мне получить ссылку на действие, чтобы показать детали в виде URL? I = 3

Вот мой контроллер. Вид:

public ActionResult Details(int? id)
    {
       ...
        return View();
    }

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Коды маршрутизации можно найти в методе RegisterRoutes в файле Global.asax нашего проекта.

Я вижу cookie уже в методе RegisterRoutes.

routes.MapRoute(
 "Default",     // Route name
 "{controller}/{action}/{id}",     // URL with parameters
 new { controller = "Home", action = "Index", id = "" }    // Parameter defaults);

Используя метод MapRoute выше, мы определили новый маршрут.

Образец;

public class HaberController : Controller
{
      public ActionResult Listele()
      {
           // Listing codes will be written
            return View("Listele");
      }

      public ActionResult Detay(string HaberId)
      {
           // Detail codes will be written
           return View("Detay");
      }
}

Переходим к нашему файлу Global.asax и редактируем его следующим образом.

public static void RegisterRoutes(RouteCollection routes)
{
       routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

       routes.MapRoute(
             "HaberListeleme",
             "Haber",
             new { controller = "Haber", action = "Listele" }
       );

       routes.MapRoute(
            "HaberDetay",
            "Haber/{id}",
            new { controller = "Haber", action = "Detay" }
        );

       routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = "" } // Parameter defaults
        );
}

Если мы сделаем маршрутизацию следующим образом:

routes.MapRoute(
      "HaberDetay",
      "Haber/{*Id}",
      new { controller = "Haber", action = "Detay" }
);

Поэтому, если мы напишем *, поместив символ рядом с именем нашего параметра, он будет отправлен соответствующему параметру метода Detail в Controller независимо от того, что он говорит после вкладки News / url.

Например:

http://www.doguhanaydeniz.com/Haber/Turkiye/Guncel/34389

Если URL запрашивается как Турция / текущий / 34389 будет отправлен в качестве параметра.

0 голосов
/ 29 октября 2018

Почему вы хотите увидеть имя параметра в ссылке?

Asp.Net MVC использует удобные для пользователя URL.

Если вы создали проект в Visual Studio с использованием шаблона MVC, вероятно, ваши маршруты по умолчанию настроены на интерпретацию параметра после контроллера / действия /, например, идентификатора.

Таким образом, значение параметра id в вашем действии будет автоматически заменено привязкой модели на номер идентификатора, присутствующий в вашем URL.

...