mvc4를 사용하여 이전 데이터를 편집하고 싶습니다. 예를 들어 도시 이름을 첸나이 (모델에서 채워지는 드롭 다운 목록)에서 푸네로 변경해야합니다. 누구든지 나를 인도 할 수 있습니까? 다음은 엔티티 프레임 워크를 사용하지 않고 MVC4에서 편집 기능을 수행하는 방법은 무엇입니까?
내 코드입니다 :컨트롤러 :
[HttpGet]
public ActionResult display(Create model)
{
List<Create> city = new List<Create>();
using (connectionstring pcs = new connectionstring())
{
city = pcs.grp.OrderBy(a => a.cityname).ToList();
}
ViewBag.cityname = new SelectList(city, "cityname", "cityname");
return View(model);
}
[HttpPost, ActionName("display")]
[ValidateAntiForgeryToken]
public ActionResult display1(Create cg)
{
List<Create> city = new List<Create>();
using (connectionstring pcs = new connectionstring())
{
city = pcs.grp.OrderBy(a => a.cityname).ToList();
}
ViewBag.cityname = new SelectList(city, "cityname", "cityname");
if (ModelState.IsValid)
{
string oldgcityname = cg.cityname.ToString().Trim();
using (NpgsqlConnection conn = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["portalconnectionstring"].ConnectionString))
{
using(NpgsqlCommand cmd=new NpgsqlCommand("update tblcity set cityname='$1' where cityname='"+oldcityname+"'",conn))
cmd.ExecuteNonQuery();
}
}
return View(cg);
}
보기 :
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<table>
<tr> <td>
<div class="editor-label">
@Html.Label("Select old cityname")
</div> </td>
<td>
<div class="editor-field">
@Html.DropDownListFor(model => model.cityname,@ViewBag.cityname as SelectList,"select")
@Html.ValidationMessageFor(model => model.cityname)
</div>
</td></tr>
<tr> <td>
<div class="editor-label">
@Html.Label("Enter new cityname")
</div> </td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.cityname)
@Html.ValidationMessageFor(model => model.cityname)
</div>
</td></tr>
<tr><td>
<p>
<input type="submit" value="Create" />
</p>
</td></tr>
어떤 문제가 있습니까? –
모델 속성과'ViewBag' 속성이 같은 이름 인'DropDownListFor()'를 사용할 수 없습니다. 그리고 나서 동일한 속성 이름을 다시 사용하는'EditorFor()'가 있습니다 (다시 게시시 무시됩니다) –
예. 이 시나리오를 수행하는 방법을 모르겠습니다. 이 작업을 수행하는 다른 방법이 있습니까? – user3793029