6
MVC2, C# 및 Linq를 하나의 프로젝트에서 모두 배우려고하는데 (예, 미쳤습니다) DropDownListFor에 대한 일부 문제가 발생하여 SelectList를 전달했습니다. ASP.Net MVC2 DropDownListFor
이
내 컨트롤러에 코드입니다 :public ActionResult Create()
{
var Methods = te.Methods.Select(a => a);
List<SelectListItem> MethodList = new List<SelectListItem>();
foreach (Method me in Methods)
{
SelectListItem sli=new SelectListItem();
sli.Text = me.Description;
sli.Value = me.method_id.ToString();
MethodList.Add(sli);
}
ViewData["MethodList"] = MethodList.AsEnumerable();
Talkback tb = new Talkback();
return View(tb);
}
나는 문제가 DropDownListFor
가 ViewData
에 MethodList
을하려고 노력 데. 내가하려고하면 :
<%:Html.DropDownListFor(model => model.method_id,new SelectList("MethodList","method_id","Description",Model.method_id)) %>
그것은 오류를 다음과 같은 메시지가 문자열로 MethodList
복용으로
DataBinding: 'System.Char' does not contain a property with the name 'method_id'.
나는이는 이유를 알고,하지만 난 얻을 방법을 알아낼 수 없습니다 그것은 SelectList
걸릴. 정상으로 다음과 같이하면 DropDownList
:
<%: Html.DropDownList("MethodList") %>
매우 만족합니다.
아무도 도와 줄 수 있습니까?
토크백 클래스는 L2E 테이블 클래스입니다. 여기에는 메서드 테이블과의 0..1 관계가있는 method_id가 포함되어 있으므로 Talkback 테이블의 method_id Scalar 속성과 해당 메서드의 method_id와 관련된 메서드에 대한 메서드 탐색 속성 만 있습니다. 그래서 특정 토크백 레코드와 관련된 메소드를 생성 할 수 있습니다.이 메소드는 작성 액션이므로 null이됩니다. 그러나 토크백 모델을 통해 모든 방법에 액세스 할 수는 없습니다. 희망이 맞습니다! – hermiod
추가 코드로 업데이트되었습니다. 이것을 시험해보고 그것이 효과가 있는지보십시오! – Tejs
이제 '메서드에 대한 오버로드 없음'DropDownListFor '인수가 1 개 있습니다.'라는 오류 메시지가 나타납니다. 어쩌면 나는 MVC를 잘못 이해하고 있지만 데이터베이스 모델 자체에서 모든 뷰를 생성하고 필요에 따라 수정할 수 있다고 생각했습니다. ViewData를 통해 임의의 목록을 전달하는 몇 가지 예를 보았습니다 (내 원래 코드가 기반이 된 ViewData를 통해), 내 상황에서이 작업을 수행 할 수있는 방법이 있습니까? 도움을 주셔서 감사합니다 Tejs – hermiod