2009-04-08 2 views
20

Я использую asp.net MVC framework. На моей странице у меня есть dropdwonbox, и когда нажимается опция, я хочу перейти на другую страницу. Но я не могу найти, как/где установить для свойства autopostback значение true. Это код, я использую:C# Как установить свойство autopostback при использовании asp.net mvc?

Aspx:

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

Контроллер:

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

    return View(); 
} 

Что я должен сделать, чтобы использовать функциональные возможности AutoPostBack?

ответ

36

Вы можете использовать OnChange событие клиента:

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

thnx. И должен ли я использовать эту же манеру, если я хочу добавить атрибут класса? – Martijn

+2

Да, хотя с C# вам нужно префикс с подчеркиванием .. ie new {_class = "something"} – meandmycode

+0

Как контроллер узнает, какое действие нужно выполнить? –

0

Это кажется вспомогательный метод DropDownList не поддерживает это. Возможно использование его в форме и пользовательский атрибут html для отправки формы.

0

Я считаю также, что вы можете настроить постбэк к formsCollection

постбэк общественного ActionResult Index (FormsCollection MyForm)

(я не на моем домашнем компьютере, где установлен MVC, поэтому я не могу проверить синтаксис здесь)

0

Я решаю использовать этот код.

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 

Это для функции ActionResult

И Тогда для View

<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> 

Я надеюсь, что это помогает. Я хотел бы получить более полные коды, пожалуйста, напишите мне по адресу [email protected]

 Смежные вопросы

  • Нет связанных вопросов^_^