Tôi nghĩ rằng tôi đã hỏi điều này nhưng giải pháp không thực sự có ý nghĩa. Dù sao, tôi có ActionLinks trên quan điểm của tôi như thế này:mvc tuyến đường url hành động sử dụng tên thay vì id
foreach(var item in Model){
<%: Html.ActionLink(item.Name, "Details", new {id = item.Id}) %>
}
bây giờ, khi nó đi vào chi tiết hành động của tôi rõ ràng đây sẽ là url
/MyThings/Details/{id}
Tôi đã tự hỏi nếu nó có thể hiển thị các tên của mục đó thay vì id Sử dụng slug? hoặc sửa đổi asax toàn cầu như vậy:
/MyThings/Details/CarKeys
Điều cần đặt tên là duy nhất, có cách nào tôi có thể sửa đổi tên chung trên toàn cầu để hiển thị tên thay cho id không?
Bất kỳ lời khuyên nào được đánh giá cao!
có, nhưng điều này sẽ cần phải thay đổi các truy vấn mà nó đạt được với bộ điều khiển chính xác không? từ ActionResult Details công cộng (int id) đến Public ActionResult Deatils (tên chuỗi). Tôi đã cố gắng để tránh điều đó, nhưng nếu không có bất kỳ lựa chọn thì tôi gues đó là con đường để đi? – gdubs
Tùy thuộc. Tham số '{id}' của bộ điều khiển của bạn có đang chờ tên không? nếu vậy thì chỉ cần 'new {id = item.Name}' – Buildstarted
@gdubs: Vâng, nếu bạn định xác định nội dung theo tên của nó, rõ ràng bạn sẽ cần phải sử dụng truy vấn khác nếu bạn đang xác định nó bằng cách ID của nó. Có một số thủ thuật ràng buộc nâng cao mà bạn có thể sử dụng để giải quyết vấn đề này, nhưng tôi muốn nói bạn nên giữ nó đơn giản. Nếu bạn muốn sự tiện lợi của ID, nhưng cũng muốn bao gồm tên để làm cho nó trông đẹp, chỉ cần bao gồm cả hai giống như Malevolence chỉ ra. – StriplingWarrior