Soru Bir bağlantı parçası olarak rota değerlerini geçirmek için TagHelper


Belirlerken asp-controller ve asp-action Bir bağlantıda, bir id özniteliğini de geçirme sözdizimi nedir?

Örneğin. Belirli bir nesne için düzenleme URL'sine bağlantı vermek isteseydim, gerekli URL olurdu /user/edit/5 Örneğin.

Bunu TagHelpers kullanarak elde etmek için bir yöntem var mı yoksa hala geri dönmek zorunda mıyız? @Html.ActionLink()?


32
2018-05-04 00:14


Menşei




Cevaplar:


Öznitelik önekini kullanabilirsiniz. asp-route- Rota değişken isimlerini öneklemek için

Örnek: <a asp-action="Edit" asp-route-id="10" asp-route-foo="bar">Edit</a>


51
2018-05-04 22:54



Bunu işe alamıyorum çünkü "asp-route-foobar" rotam ile eşleşmedi: "routes.MapRoute (" yearNoCombo "), template:" {controller = Home} / {action = Index} / { foobar?} / {whatever1} / {whatth}}) - rota isimleri eşleşmelidir. - Morten Nørgaard
Yukarıdaki yoruma ek olarak, yol haritalarının HTML'de bir parametre olarak görünen rota bitini önlemek için rotaların doğru şekilde ayarlandığından emin olmalısınız. - Calanus


Diğer iki cevabın bir kombinasyonunu önermek istiyorum, ama biraz fazladan açıklama.

Bir özellik öneki kullanacaksınız asp-route-{name} nerede {name} Kullanmak istediğiniz rota parametresinin adıdır. Başka bir deyişle, rotanızdaki 5 numara denetleyiciye bir kimlik değeri olarak aktarılırsa, aşağıdakileri yapabilirsiniz:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>

veya rotaya geçmek istediğiniz parametre item.UserName ise

<a asp-controller="User" asp-action="Edit" asp-route-username="@item.UserName">Edit</a>

Ve eğer her iki parametreye sahipseniz

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>

15
2018-03-05 00:40



Bu kesinlikle benim için diğerlerinden daha anlamlı oldu. Aynı <a> </a> 'da birden fazla asp-route- {parametre adı} var mı? Bu benim sorunumda yardımcı oldu Id değil ve yerine Sipariş birincil anahtar Id yerine yerleştirerek bir yabancı anahtar CompanyId geri göndermeye çalışırken doğru bağlama değil. - Edward
Evet yapabilirsin. Göre davepaquette.com/archive/2015/06/01/...   Niteliklerini kullanarak kullanmak istediğiniz kadar çok parametre için değer belirleyebilirsiniz. asp-route- önek. Aynı isimle iki parametreye sahip olabileceğinizi sanmıyorum - bu konuda bir özellik talebi / sorunu var github.com/aspnet/Mvc/issues/4560 - Alex White
Yani bu hakkı okursam, şu anda listeler yalnızca eylem yardımcı yönteminde ve bağlantı etiketi yardımcılarında değil, bir şekilde iletmenin bir yolu var. - Edward
Anchor taghelper'da geçen iki parametreyi göstermek için cevabımı güncelledim. Bu daha iyi mi? - Alex White
Gerçekten gerek yoktu. Elbette, cevaplarımı ararken bağlantılarınızda kullanılan terminolojiyi bilmiyordum. soru listeleri geri alma hakkında. - Edward


Aşağıdaki kodu kullanarak özel kimliğinizi iletebilirsiniz:

<a asp-controller="User" asp-action="Edit" asp-route-id="@item.ID">Edit</a>

4
2017-11-23 12:40