2009-04-08 33 views
20

Tôi đang sử dụng framework asp.net MVC. Trên trang của tôi, tôi có một dropdwonbox và khi một tùy chọn được nhấp vào tôi muốn đi đến một trang khác. Nhưng tôi không thể tìm thấy như thế nào/nơi để thiết lập các tài sản autopostback thành sự thật. Đây là mã tôi đang sử dụng:C# Làm thế nào để đặt thuộc tính autopostback khi sử dụng asp.net mvc?

ASPX:

<%= Html.DropDownList("qchap", new SelectList((IEnumerable)ViewData["qchap"], "Id", "Title")) %> 

Bộ điều khiển:

public ActionResult Index(int id) 
{ 
    Chapter c = new Chapter(); 
    ViewData["qchap"] = c.GetAllChaptersByManual(id); 

    return View(); 
} 

gì làm tôi phải làm gì để sử dụng chức năng AutoPostBack?

Trả lời

36

Bạn có thể sử dụng các sự kiện khách hàng onchange:

<%= Html.DropDownList("qchap", 
     new SelectList((IEnumerable)ViewData["qchap"], "Id", "Title"), 
     new { onchange = "this.form.submit();" }) %> 
+0

thnx. Và tôi có phải sử dụng cùng một cách này nếu tôi muốn thêm thuộc tính lớp? – Martijn

+2

có, mặc dù với C# bạn sẽ cần tiền tố với dấu gạch dưới .. tức là mới {_class = "something"} – meandmycode

+0

Làm thế nào để bộ điều khiển biết rằng hành động nào cần được thực hiện? –

0

Có vẻ như phương pháp helper DropDownList không hỗ trợ này. Có thể sử dụng nó trong một biểu mẫu và một thuộc tính tùy chỉnh html tùy chỉnh để gửi biểu mẫu làm điều đó.

0

tôi tin rằng quá mà bạn có thể muốn điều chỉnh postback của bạn vào formsCollection

postback public ActionResult Index (FormsCollection MyForm)

(Tôi không phải trên pc nhà tôi ở đâu MVC được cài đặt, vì vậy tôi không thể xác minh cú pháp ở đây)

0

Tôi giải quyết bằng cách sử dụng mã này.

Function Index(ByVal collectionField As FormCollection) As ActionResult 

     Dim industryCategoryID As Long = collectionField.Item("ddlIndustry") 
     If industryCategoryID = 0 Then 
      Me.ViewData("IndustryList") = GlobalController.GetIndustryList 
      Return View(_service.ListCompanies()) 
     Else 
      Me.ViewData("IndustryList") = GlobalController.GetIndustryList 
      Return View(_service.ListCompanies(industryCategoryID)) 
     End If 

End Function 

Đó là cho hàm ActionResult

And Then cho Xem

<p> 
    <% Using Html.BeginForm()%> 
     <%=Html.DropDownList("ddlIndustry", New SelectList(CType(ViewData("IndustryList"), IEnumerable), "ID", "Name"), "--Choose industry--", New With {.onchange = "this.form.submit()"})%> 
    <% End Using %> 

    </p> 

Tôi hy vọng nó giúp. Tôi e bạn muốn các mã hoàn chỉnh hơn, vui lòng gửi email cho tôi theo số [email protected]

Các vấn đề liên quan