ASP.NET MVC bir ActionLink içinde denetleyiciye bir kimlik geçirme


99

Html.ActionLink içinde gönderdiğim bir kimliği almayı göremiyorum, işte yapmaya çalıştığım şey

<li>
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>


    public ActionResult Modify(string ID)
    {

        ViewData["Title"] =ID;
        return View();
    }

Takip ettiğim bir öğreticinin önerdiği buydu, ama işe yaramıyor, aynı zamanda URL'nin sonuna? Length = 5!

Şimdiden teşekkürler!

düzenle: işte kullandığım rota, varsayılan

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

Görünüşe göre birisi aşağıdaki iki öneriye olumsuz oy vermiş ancak çözümlerini göndermemiş!

Yanıtlar:


204

Doğru ActionLink aşırı yüklemesini kullanıyormuşsunuz gibi görünmüyor. Bunu dene:-

<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>

Bu, görünümünüzün / Views / Villa klasörünün altında olduğunu varsayar. Değilse, ihtiyacınız olduğundan şüpheleniyorum: -

<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>

5
İyi çağrı - Sorun, bu işlevin ilk aşırı yüklemesinin dördüncü parametre olarak "HtmlAttributes" almasıydı. Bu nedenle ", null" eklemek, derleyiciyi yol parametreleri olarak satır içi nesnenizi kullanmaya zorladı.
— Timothy Khouri

28

MVC 4'te bir görünümden başka bir denetleyiciye Kimlik veya Birincil Anahtarı ileterek bağlantı kurabilirsiniz.

@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 

14

@ 'Yi kimliğin önüne koymayın

new { id = "1" }

Çerçeve, parametre / rotada bir uyumsuzluk olduğunda bunu? Uzunluk olarak "tercüme eder"


6

MVC 5'te oldukça benzer

@Html.ActionLink("LinkText", "ActionName", new { id = "id" })

2

Kimlik, @öndeki işaret ile de çalışacaktır , ancak bundan sonra bir parametre eklememiz gerekir. yaninull

gibi görünmek:

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.