Di ASP.NET MVC, saya mencoba membuat tautan yang menyertakan tag jangkar (yaitu mengarahkan pengguna ke halaman, dan bagian halaman tertentu).
URL yang saya coba buat harus terlihat seperti berikut:
<a href="/category/subcategory/1#section12">Title for a section on the page</a>
Perutean saya diatur dengan standar:
routes.MapRoute("Default", "{controller}/{action}/{categoryid}");
Sintaks tautan aksi yang saya gunakan adalah:
<%foreach (Category parent in ViewData.Model) { %>
<h3><%=parent.Name %></h3>
<ul>
<%foreach (Category child in parent.SubCategories) { %>
<li><%=Html.ActionLink<CategoryController>(x => x.Subcategory(parent.ID), child.Name) %></li>
<%} %>
</ul>
<%} %>
Metode pengontrol saya adalah sebagai berikut:
public ActionResult Subcategory(int categoryID)
{
//return itemList
return View(itemList);
}
Di atas dengan benar mengembalikan URL sebagai berikut:
<a href="/category/subcategory/1">Title for a section on the page</a>
Saya tidak tahu bagaimana cara menambahkan bagian # section12 . Kata "bagian" hanyalah konvensi yang saya gunakan untuk memecah bagian halaman, dan 12 adalah ID dari subkategori, yaitu, child.ID.
Bagaimana saya bisa melakukan ini?
asp.net-mvc
dp.
sumber
sumber
Url
atauHtml
dengan metode kustom yang mencakup cara sederhana untuk menambahkan string fragmen.Ada kelebihan ActionLink yang mengambil parameter fragmen . Melewati "section12" sebagai fragmen Anda akan memberi Anda perilaku yang Anda cari.
Misalnya, memanggil Metode LinkExtensions.ActionLink (HtmlHelper, String, String, String, String, String, String, Object, Object) :
sumber
Html.ActionLink()
tidak akan berfungsi dalam skenario apa pun - Anda harus menggunakan[email protected]()
sintaks gaya.Saya tidak ingat di mana versi ASP.NET MVC (ASP.NET MVC 3+ saya percaya) / Cukur parameterlabeldeclaration atau apa pun namanya (parameter: x) fitur diperkenalkan, tetapi bagi saya ini jelas cara yang tepat untuk membangun tautan dengan jangkar di ASP.NET MVC.
Bahkan argumen antipattern Ed Blackburn dari jawaban ini tidak bisa bersaing dengan itu.
sumber
Saya hanya melakukannya seperti ini:
sumber
Inilah contoh kehidupan nyata
Dan halaman target memiliki TABS
sumber
Solusi saya akan berfungsi jika Anda menerapkan ActionFilter ke metode tindakan Subkategori, selama Anda selalu ingin mengarahkan pengguna ke bookmark yang sama:
http://spikehd.blogspot.com/2012/01/mvc3-redirect-action-to-html-bookmark.html
Ini memodifikasi buffer HTML dan menghasilkan sepotong kecil javascript untuk menginstruksikan browser untuk menambahkan bookmark.
Anda dapat memodifikasi javascript untuk menggulir secara manual, alih-alih menggunakan bookmark di URL, tentu saja!
Semoga bermanfaat :)
sumber
Saya melakukan itu dan itu berfungsi untuk mengarahkan kembali ke tampilan lain saya pikir Jika Anda menambahkan #sectionLink setelah itu akan berhasil
sumber