2009-08-03 27 views
5

Mã mặc định mà VS tạo cho HomeController là:Có thể sử dụng URL không có tên của chức năng bộ điều khiển trong ASP .NET MVC không?

<HandleError()> 
Public Class HomeController Inherits System.Web.Mvc.Controller 

    Function Index() As ActionResult 
     ViewData("Message") = "Welcome to ASP.NET MVC!" 

     Return View() 
    End Function 

    Function About() As ActionResult 
     Return View() 
    End Function 
End Class 

Hãy nói rằng tôi muốn tạo ra một URL khác nhau cho các trang giới thiệu mà không thay đổi tên phương pháp. Tôi đã thử:

' 
' GET: /Home/Aboutblah 

Nhưng điều đó không hiệu quả. Khi tôi truy cập http://localhost:1957/Aboutblah, tôi nhận được 404 từ máy chủ ASP .NET.

Do đó, tôi đã tự hỏi liệu văn bản "TỪ" của văn bản có thực sự làm bất kỳ điều gì không và nếu có thể làm mờ các URL mà không đi sâu vào tệp ASAX.

Trả lời

4

Ngoài ra, bạn có thể trang trí phương pháp này với một thuộc tính:

[ActionName("Aboutblah")] 

James

EDIT Tôi chỉ nhận thấy bạn đang sử dụng VB. Bạn sẽ phải dịch sang VB, có thể:

<ActionName("Aboutblah")> 

?

Ngoài ra, vâng, các ý kiến, ví dụ:

' Get /Home/Index 

chỉ đó - ý kiến.

1

Nhìn vào URL Routing, bạn sẽ có thể xác định các URL thay thế cho các hành động của bộ điều khiển tốt. :)

2

Bạn sẽ cần sửa đổi mã thiết lập tuyến đường.

Nếu chỉ một lần, bạn có thể thiết lập tuyến đường cụ thể cho url này.

Sau đây sẽ lập bản đồ một cách rõ ràng url "Home/aboutBlah" hành động HomeController.About hành động và sử dụng bộ điều khiển/hành động mẫu url đường tiêu chuẩn cho bất kỳ các url khác:

RouteTable.Routes.MapRoute ("CustomAboutUrl", "Home/aboutBlah", new {controller = "Home", action = "About"});

RouteTable.Routes.MapRoute ("Mặc định", "{controller}/{action}");

0

Phương pháp đơn giản nhất là tạo một hàm trong Bộ điều khiển gọi là AboutBlah. Bạn biết đấy, như sau:

Public Function AboutBlah() AS ActionResult 
    return View() 
End Function 

Sau đó, bạn có thể có Chế độ xem có tên AboutBlah.

Không cần thiết lập tuyến đường hoặc trang trí chức năng bằng cách sử dụng thuộc tính. Bạn thậm chí có thể xóa chức năng Giới thiệu hoặc thiết lập chức năng này để hiển thị chế độ xem AboutBlah như sau:

return View("AboutBlah") 
Các vấn đề liên quan