MVC Contrib에서 DB의 데이터가있는 드롭 다운 목록에 대한 입력 빌더
-
19-09-2019 - |
문제
나는 이런 것이있다
public class Person
{
public Country {get; set;}
}
public class PersonInput
{
public ImNotSureWhatShouldIUseHere Country {get; set;}
}
MVC Contrib의 열거에 대한 입력 빌더가 있지만 DB에서 데이터를 검색하고 선택한 요소의 ID를 값이 아닌 저장하기 때문에 좋지 않습니다.
해결책
나는 내 자신의 입력 빌더를 만들었습니다.
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/InputBuilders/Field.Master"
Inherits="System.Web.Mvc.ViewPage<PropertyViewModel<object>>" %>
<%@ Import Namespace="MvcContrib.UI.InputBuilder.Views"%>
<%@ Import Namespace="System.Web.Mvc.Html"%>
<asp:Content ID="Content2" ContentPlaceHolderID="Input" runat="server">
<%=Html.DropDownList(Model.Name, Model.Value as IEnumerable<SelectListItem>)%>
</asp:Content>
입력 클래스의 속성은 다음과 같습니다.
[PartialView("MySelectList")]
public IEnumerable<SelectListItem> Om { get { return new SelectList(Web.Models.DataGenerator.Persons, "Id", "Name", 2); } }
다른 팁
내가 당신의 질문에서 내가 이해 한 것을 다시 시도해 보겠습니다 : 당신은 데이터베이스 테이블이 있습니다. countries
열이 포함되어 있습니다 id
그리고 name
당신이 a에 묶고 싶어한다 select
보기에 요소. 이것이 올바른 경우 다음과 같은 일을 시도 할 수 있습니다.
public ActionResult Index()
{
IEnumerable<Country> countries = FetchCountriesFromDB();
var model = new SelectList(countries, "Id", "Name", null);
return View(model);
}
그리고 당신의 강력하게 입력 한 견해에서 :
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.SelectList>" %>
...
<%= Html.DropDownList("country", Model) %>
그리고 마지막으로 다음에 게시하는 조치를 취할 수 있습니다.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string country)
{
// country will contain the selected country id
...
}
제휴하지 않습니다 StackOverflow