自動生成されない複合主キーとして使用されている2つのフィールドがあります。現在、編集ビューでは、これら2つのフィールドは読み取り専用であり、編集することはできません。では、どのように編集を行うことができますか...?
モデル:
[Key][Column (Order=0)]
[Required]
public string LOV_COLUMN { get; set; }
[Key][Column(Order = 1)]
[Required]
public string LOV_CODE { get; set; }
[Required]
public string LOV_DESC{ get; set; }
public string COLUMN_TYPE { get; set; }
public string LOV_STATUS { get; set; }
コントローラ:
public ActionResult Edit(string LOV_COLUMN= "", string LOV_CODE="")
{
return View(dv.LOV.Find(LOV_COLUMN, LOV_CODE) ?? new ADM_LOV_Master());
}
[HttpPost]
public ActionResult Edit(ADM_LOV_Master entity, FormCollection form)
{
try
{
var model = dv.LOV.Find(entity.LOV_COLUMN, entity.LOV_CODE);
TryUpdateModel<ADM_LOV_Master>(model, form.ToValueProvider());
dv.Entry<ADM_LOV_Master>(model).State = System.Data.EntityState.Modified;
dv.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Edit View Code as:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>LOV_Master</legend>
<table>
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.LOV_COLUMN)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LOV_COLUMN)
@Html.ValidationMessageFor(model => model.LOV_COLUMN)
</div>
</td>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.LOV_CODE)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LOV_CODE)
@Html.ValidationMessageFor(model => model.LOV_CODE)
</div>
</td>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.LOV_DESC)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LOV_DESC)
@Html.ValidationMessageFor(model => model.LOV_DESC)
</div>
</td>
</tr>
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.COLUMN_TYPE)
</div>
<div class="editor-field">
@*@Html.EditorFor(model => model.COLUMN_TYPE)*@
@Html.RadioButtonFor(model => model.COLUMN_TYPE, "C", new { id = "COLUMN_TYPE_false"})
<label for="COLUMN_TYPE_true">Character</label>
@Html.RadioButtonFor(model => model.COLUMN_TYPE, "N", new { id = "COLUMN_TYPE_true"})
<label for="COLUMN_TYPE_true">Number</label>
@Html.ValidationMessageFor(model => model.COLUMN_TYPE)
</div>
</td>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.LOV_STATUS)
</div>
<div class="editor-field">
@*@Html.EditorFor(model => model.LOV_STATUS)*@
@Html.RadioButtonFor(model => model.LOV_STATUS, "Y", new { id = "LOV_STATUS_true"})
<label for="LOV_STATUS_true">Yes</label>
@Html.RadioButtonFor(model => model.LOV_STATUS, "N", new { id = "LOV_STATUS_false" })
<label for="LOV_STATUS_true">No</label>
@Html.ValidationMessageFor(model => model.LOV_STATUS)
</div>
</td>
</tr>
</table>
</fieldset>
}