내 데이터가 포함 된 XML 파일이 있으며 드롭 다운 목록 저장에서이 XML에 문자열을 선택하고 싶습니다. 컨트롤러에서DropDownList에서 문자열 가져 오기
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>MatchXML</legend>
...
<div class="editor-label">
@Html.LabelFor(model => model.Team)
</div>
<div class="editor-field">
@Html.DropDownList("Team", (SelectList)ViewBag.Team, String.Empty)
@Html.ValidationMessageFor(model => model.Team)
</div>
...
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
:
public ActionResult Pridat()
{
ViewBag.Team = new SelectList(repo.GetTeams(), "Name", "Name");
return View();
}
[HttpPost]
public ActionResult Pridat(MatchXML match, string Team)
{
if (ModelState.IsValid)
{
try
{
ViewBag.Team = new SelectList(repo.GetTeams(), "Name", "Name");
match.Team = repo.GetTeamByName(Team);
repo.AddMatch(match);
return RedirectToAction("Index");
}
catch (Exception ex)
{
//error msg for failed insert in XML file
ModelState.AddModelError("", "Error creating record. " + ex.Message);
}
}
return View(match);
}
모델 같습니다 내보기에서 나는 이것을 가지고 내가이 작업을 수행하는 몇 가지 수정을 시도하고 있었다
public class MatchXML
{
public int MatchXMLID { get; set; }
public string Opponent { get; set; }
public DateTime MatchDate { get; set; }
public string Result { get; set; }
public Team Team { get; set; }
public int Round { get; set; }
}
public class Team
{
public int TeamID { get; set; }
public string Name { get; set; }
public virtual User Coach { get; set; }
public virtual ICollection<Player> Players { get; set; }
}
하지만, 그것은 작동하지 않습니다. TeamID 및 ID 저장 작업으로 할 수 있지만 xml 저장 문자열 (팀 이름)에 저장하려고합니다. 도움을 주셔서 감사합니다
편집 : 컨트롤러 및보기 방법의 쇼 코드를 업데이트했습니다.
문제는 여기에 무엇입니까? 작동하지 않는 것은 무엇입니까? 드롭 다운이 올바르게 렌더링되지 않습니까? 또는 텍스트 값을 가져 오는 방법을 모릅니다. 그렇다면 Team이라는 문자열 인수를 작업에 추가하면됩니다. – rouen
DropDown이 올바르게 렌더링되고 있지만 실제로 가치를 얻는 방법을 모르겠습니다. 문자열 인수로 시도했지만 작동하지 않습니다. 오류가 발생했습니다 : 키 '팀'이있는 'IEnumerable'형식의 ViewData 항목이 없습니다. –
양식과 게시 작업이 있습니까? 당신이하려는 일과 그렇지 않은 일에 대해 명확하지 않습니다. – jrummell