2011-01-28 5 views
0

меня возникли трудности в выполнении следующих действий, и если кто-нибудь может дать мне представление о том, как я могу добиться следующего:Техническая информация с использованием значений выпадающих перейти к контроллеру

При новом выборе в выпадающем списке, я называю Действие Состояние и передача выбранного значения в раскрывающемся списке в качестве параметра.

У меня есть выпадающий список, как следует, на мой взгляд

@Html.DropDownList("Status", Model.DisplayStatus) 

В Мой контроллер, я имею

private ActionResult Status(string active = "All") 
    { 
     UserModel model = new UserModel(active); 
     return View("Users", model); 
    } 

ответ

1

Я хотел бы использовать строго типизированные хелперы и JQuery. Как это:

public class MyViewModel 
{ 
    public string Status { get; set; } 
    public IEnumerable<SelectListItem> Statuses 
    { 
     get 
     { 
      return new[] 
      { 
       new SelectListItem { Value = "online", Text = "Online" }, 
       new SelectListItem { Value = "offline", Text = "Offline" }, 
       new SelectListItem { Value = "all", Text = "All" }, 
      }; 
     } 
    } 
} 

затем контроллер:

public class HomeController: Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel()); 
    } 

    public ActionResult Status(string status) 
    { 
     UserModel model = new UserModel(status); 
     return View("Users", model); 
    } 
} 

и, наконец, вид:

@model AppName.Models.MyViewModel 
@using (Html.BeginForm("Status", "Home", FormMethod.Post, new { id = "myForm" })) 
{ 
    @Html.DropDownListFor(
     x => x.Status, 
     new SelectList(Model.Statuses, "Value", "Text"), 
     new { id = "status" } 
    ) 
} 

и некоторые скрипт прикрепить к событию изменения и отправить форму:

<script type="text/javascript"> 
$(function() { 
    $('#status').change(function() { 
     $('myForm').trigger('submit'); 
    }); 
}); 
</script> 
Смежные вопросы