Повышение скорости работы с MVC 3,
Возникла проблема с методом [HttpPost] ActionResult, который видит переданные данные, в зависимости от того, использую ли я EditorFor () или TextBoxFor () в моем представлении.
У меня есть несколько полей в окне «Правка», которые я хочу использовать только для чтения, поэтому я использовал:
<div class="editor-field">
@Html.EditorFor(model => model.ModelNumber)
@*Html.TextBoxFor(model => model.ModelNumber, new { disabled = "disabled", @readonly = "readonly" })*@
@*Html.ValidationMessageFor(model => model.ModelNumber)*@
</div>
Вот методы контроллера ActionResult:
public ActionResult Edit(int id)
{
var NPSProc = db.NPSProcesseds.SingleOrDefault(p => p.Id == id);
return View(NPSProc);
}
[HttpPost]
public ActionResult Edit(NPSProcessed Processed)
{
try
{
if (ModelState.IsValid)
{
db.Entry(Processed).State = EntityState.Modified;
db.SaveChanges();
return new RedirectResult("~/Home", false);
}
else
{
return View("Edit", Processed);
}
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
return View("Edit", Processed);
}
КогдаЯ удаляю комментарии к методу EditorFor (), поле ModelNumber содержит значение ModelNumber в обработанном объекте, переданном методу HttpPost ActionResult.
Если я комментирую метод EditorFor () и удаляю комментарий в TextBoxFor() метод поле MethodNumber содержит ноль.
Похоже, что метод EditorFor () выполняет какую-то дополнительную работу, которую не выполняет метод TextBoxFor ().
Может кто-то указать мне правильныйНаправьте и укажите на ошибку, которую я совершаю.
Спасибо
Джо