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>
}
显示视图的代码,更简单的方法发布更正。 – linkerro
你是什么意思“无法编辑”?我使用@ Html.EditorForModel尝试了这一点,并且可以对视图中的关键属性进行更改。 – McGarnagle
发布编辑视图的代码。 – user13