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.