2015-07-24 3 views
0

Когда я загружаю эту формуGuid переопределены на форме представить

@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> 

Поля имеют следующие значения:

enter image description here

Но после отправки формы в методе POST, идентификатор перезаписывается другим Guid и поле Language является нулевым.

enter image description here

Модель данных выглядит следующим образом:

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; } 
} 

Что я сделал не так?

EDIT: по запросу пост-метод:

[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; 
    } 
+0

Можете ли вы показать нам способ отправки вашего контроллера? – Yogi

+0

@Yogi Конечно, здесь вы идете. –

+0

Не так много подсказки :(но одно наблюдение заключается в том, что Идентификатор заменен на CategoryId на самом деле. Должно быть какое-то тривиальное непродуманное пропущение – Yogi

ответ

0

Намек @ DanielJ.G. поставил меня в правильное направление. Проблема была имя параметра я использовал для

@Html.ActionLink(...., new {id = Model.CategoryID}, .....) 

и соответствующий

public ActionResult Category_Delete(Guid id) 

Как только я переименовал «ID» в «CATEGORY_ID», идентификатор не перезаписан и больше ,