Guid 在表单提交时被覆盖
Guid gets overwritten on form submit
当我加载此表单时
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Category Description</legend>
@Html.HiddenFor(model => Model.ID)
@Html.HiddenFor(model => Model.CategoryID)
@Html.DisplayFor(model => Model.Language)<br />
<div class="editor-field">
@Html.TextAreaFor(model => model.Text, new {} )
@Html.ValidationMessageFor(model => model.Text)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
字段具有以下值:
但是提交表单后,在POST方法中,ID被其他Guid覆盖,Language Field为空。
数据模型如下所示:
public partial class Category_Description
{
public System.Guid ID { get; set; }
public System.Guid CategoryID { get; set; }
public string Language { get; set; }
public string Text { get; set; }
public virtual Category Category { get; set; }
}
我做错了什么?
编辑:
根据请求 Post-方法:
[HttpPost]
public ActionResult CategoryDescription_Edit(Category_Description model)
{
if (ModelState.IsValid)
{
var result = dataService.SaveChanges(model);
if (result)
return RedirectToAction("Index");
}
return View(model);
}
以防万一dataService.SaveChanges:
public bool SaveChanges(object model)
{
Portal_Context.Entry(model).State = EntityState.Modified;
return Portal_Context.SaveChanges() > 0 ? true : false;
}
@DanielJ.G的提示。让我朝着正确的方向前进。
问题是我用于
的参数名称
@Html.ActionLink( ...., new {id = Model.CategoryID}, .....)
和相应的
public ActionResult Category_Delete(Guid id)
我将 "id" 重命名为 "category_id" 后,ID 就不再被覆盖了。
当我加载此表单时
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Category Description</legend>
@Html.HiddenFor(model => Model.ID)
@Html.HiddenFor(model => Model.CategoryID)
@Html.DisplayFor(model => Model.Language)<br />
<div class="editor-field">
@Html.TextAreaFor(model => model.Text, new {} )
@Html.ValidationMessageFor(model => model.Text)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
字段具有以下值:
但是提交表单后,在POST方法中,ID被其他Guid覆盖,Language Field为空。
数据模型如下所示:
public partial class Category_Description
{
public System.Guid ID { get; set; }
public System.Guid CategoryID { get; set; }
public string Language { get; set; }
public string Text { get; set; }
public virtual Category Category { get; set; }
}
我做错了什么?
编辑: 根据请求 Post-方法:
[HttpPost]
public ActionResult CategoryDescription_Edit(Category_Description model)
{
if (ModelState.IsValid)
{
var result = dataService.SaveChanges(model);
if (result)
return RedirectToAction("Index");
}
return View(model);
}
以防万一dataService.SaveChanges:
public bool SaveChanges(object model)
{
Portal_Context.Entry(model).State = EntityState.Modified;
return Portal_Context.SaveChanges() > 0 ? true : false;
}
@DanielJ.G的提示。让我朝着正确的方向前进。 问题是我用于
的参数名称@Html.ActionLink( ...., new {id = Model.CategoryID}, .....)
和相应的
public ActionResult Category_Delete(Guid id)
我将 "id" 重命名为 "category_id" 后,ID 就不再被覆盖了。