Tôi đang tìm phương pháp tốt nhất để tạo một trình soạn thảo danh sách thả xuống mẫu với MVC. Dường như có nhiều phương pháp khác nhau nhưng tôi không thể tìm ra phương pháp nào tốt nhất, mọi người dường như làm điều đó khác đi. Tôi đang sử dụng MVC3 với Razor là tốt, do đó, một phương pháp làm việc với điều này là ưa thích.ASP.NET MVC DropDown Editor Template
Trả lời
Có nhiều cách và nói điều tốt nhất sẽ là chủ quan và có thể không hoạt động trong kịch bản của bạn mà theo cách bạn quên mô tả trong câu hỏi của mình. Đây là cách tôi làm điều đó:
mẫu:
public class MyViewModel
{
public string SelectedItem { get; set; }
public IEnumerable<Item> Items { get; set; }
}
public class Item
{
public string Value { get; set; }
public string Text { get; set; }
}
Bộ điều khiển:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
// TODO: Fetch this from a repository
Items = new[]
{
new Item { Value = "1", Text = "item 1" },
new Item { Value = "2", Text = "item 2" },
new Item { Value = "3", Text = "item 3" },
}
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (!ModelState.IsValid)
{
// redisplay the view to fix validation errors
return View(model);
}
// TODO: The model is valid here =>
// perform some action using the model.SelectedItem
// and redirect to a success page informing the user
// that everything went fine
return RedirectToAction("Success");
}
}
View (~/Views/Home/Index.cshtml
):
@model MyApp.Models.MyViewModel
@{ Html.BeginForm(); }
@Html.EditorForModel()
<input type="submit" value="OK" />
@{ Html.EndForm(); }
biên tập mẫu (~/Views/Home/EditorTemplates/MyViewModel.cshtml
):
@model MyApp.Models.MyViewModel
@Html.DropDownListFor(x => x.SelectedItem,
new SelectList(Model.Items, "Value", "Text"))
Cá nhân tôi nghĩ rằng các mục danh sách phải được đặt trong dữ liệu chế độ xem chứ không phải kiểu xem nhưng nó thực sự phụ thuộc nếu bạn đang hiển thị trình đơn thả xuống không bao giờ thay đổi (sử dụng dữ liệu chế độ xem) hoặc nếu bạn phải sửa đổi (sử dụng mô hình xem).
Trong ví dụ bạn đang đăng cùng một kiểu xem cho hành động chỉ mục. Hành động chỉ mục chỉ quan tâm đến mục đã chọn để chỉ có thể thay đổi tham số của hành động đăng chỉ mục thành chuỗi selectedItem. Bằng cách đó, trình mô hình hóa sẽ xem xét các tham số biểu mẫu và điền thông số chỉ mục cho bạn.
Ngoài ra, tôi nghĩ sẽ tốt hơn khi chuyển danh sách SelectedListItems xuống chế độ xem theo cách đó bạn sẽ không cần bất kỳ sự hội tụ nào và không cần lớp Item.
Đây là cách tiếp cận của tôi từ bài đăng này:
Tôi thích giải pháp này, nhưng nó có thể DI'd lên một chút, giống như sử dụng 'DependencyResolver' thay vì' Activator' để nhanh chóng –
Thực ra tôi đã thực hiện nhiều cải tiến nhưng tôi cảm thấy quá lười biếng để cập nhật bài viết :) Tôi sẽ làm một cái mới sau đó tôi đã nói với bạn :) –
- 1. asp.net MVC responsive template best design
- 2. ASP.NET MVC 3 Custom Display Template Với UIHint - Đối với vòng lặp yêu cầu?
- 3. Tải hình ảnh lên trong ASP.NET MVC
- 4. ASP.NET MVC 3 One-To-Nhiều Mẫu
- 5. dropdown trong mvc3 chỉnh sửa mẫu
- 6. asp.net mvc thêm css vào editorfor?
- 7. Spring MVC vs ASP.NET (MVC?)
- 8. ASP.NET MVC vs Spring MVC
- 9. jQuery. ASP.NET MVC 3. Lỗi Datepicker?
- 10. Dropdown datatables lọc jquery
- 11. DateTimePicker AM/PM Dropdown
- 12. HTML JavaScript Dropdown selectedIndex
- 13. ASP.NET MVC 4 phá vỡ ASP.NET MVC 3 dự án
- 14. ASP.NET MVC Model Binder trả về đối tượng null
- 15. ASP.NET MVC: Html.EditorFor và nhiều dòng hộp văn bản
- 16. Trình soạn thảo Asp.Net MVC 3 cho thuộc tính động
- 17. AngularJS Dropdown yêu cầu xác nhận
- 18. MVC MiniProfiler với ASP.NET MVC 4
- 19. ASP.NET MVC trên Mono
- 20. Populating ASP.NET MVC DropDownList
- 21. asp.net mvc - caching
- 22. ASP.NET MVC Html.RadioButton Exception
- 23. ASP.NET Mvc - System.Web.Compilation.CompilationLock
- 24. JSON và ASP.NET MVC
- 25. ASP.NET MVC AsyncController xxxCompleted
- 26. ASP.NET MVC và HTML5
- 27. ASP.Net MVC 4 Gói
- 28. ASP.NET MVC Cookie Implementation
- 29. ASP.Net MVC Memberships
- 30. tuyến ASP.NET MVC
Cảm ơn cho điều này, nó có vẻ là chính xác những gì tôi muốn. – Craig
Cảm ơn Darin. Nhưng mẫu trình soạn thảo chỉ có một taks (trình đơn thả xuống). Làm thế nào bạn có thể chỉ cần gọi EditotFormModel()? Điều gì xảy ra nếu tôi cần có hai mẫu trình chỉnh sửa? Một cho trình đơn thả xuống và một cho danh sách hộp kiểm? cả hai tôi muốn sử dụng int ông cùng xem? – Shyju