我有一个模型Product (Id, Name, description,..)
:
视图调用(Edit.cshtml):
@model Product
@using (Html.BeginForm.................
@Html.HiddenFor(m => m.Id)
<div class="form-group divdatepicker">
<label>Name</label>
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
</div>
<div class="form-group">
<label>Description</label>
@Html.TextBoxFor(m => m.description, new { @class = "form-control" })
</div>
=> HTML VIEW
@Html.HiddenFor(m => m.Id)
在控制器中将Id = 100设置为“视图”(值= 100)。
<input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" value="100" type="hidden">
在Controller ProductController中:
set Id = 100;
[HttpPost]
public ActionResult ResultContact()
{
var model = dbc.Products.Find(100);
return View(model);
}
public ActionResult Edit(UseDetail model)
{
.....
dbc.Entry(model).State = System.Data.Entity.EntityState.Modified;
dbc.SaveChanges();
}
但是,当我查看代码时,HTML在以下位置更改了ID:
<input data-val="true" ....id="Id" name="Id" value="100" type="hidden"> 100 to product id = 300
dbc.SaveChanges()
将数据内容名称,描述,产品ID 300更改为100。
我的网站不安全。
在编辑HTML代码时不允许更改ID。