2015-09-19 26 views
2

我不知道我在做什麼壞事。MVC5模型沒有recory文本框的文本值

控制器:

public class PictureController : Controller 
{ 
    // GET: Picture 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult AddGroup() 
    { 
     ModelPhotoGroup p = new ModelPhotoGroup(); 
     return View(p); 
    } 
    [HttpPost] 
    public ActionResult AddGroup(ModelPhotoGroup p) 
    { 
     return View(p); 
    } 
} 

在HttpPost我得到一個p.GroupName = NULL ADDGROUP但我在文本框中

查看書寫文字:

@model Boda.WebUI.Models.ModelPhotoGroup 

@{ 
    ViewBag.Title = ""; 
} 

<h2>Crear grupo de fotos</h2> 
<div class="row"> 
    <div class="col-lg-6 col-lg-offset-3 col-md-6 col-md-offset-3 col-sm-8 col-md-offset-2"> 
     <div class="well"> 
      @using (Html.BeginForm()) 
      { 
       @Html.HiddenFor(x => x.GroupName) 
       <div class="form-group"> 
        @Html.LabelFor(x => x.GroupName) 
        @Html.TextBoxFor(x => x.GroupName, new { @class = "form-control" }) 
        @Html.ValidationMessageFor(x => x.GroupName) 
       </div> 
       <div class="btn-group"> 
        <input type="submit" value="Guardar" class="btn btn-success" /> 
        @Html.ActionLink("Cancelar y volver a la lista de Fotografias", "Index", null, new 
        { 
         @class = "btn btn-default" 
        }) 
       </div> 
      } 
     </div> 
    </div> 
</div> 

這是視圖。只有我有一個TextBoxt寫

HTML生成該組的名稱:

<form action="/Picture/AddGroup" method="post"><input id="GroupName" name="GroupName" type="hidden" value="">    <div class="form-group"> 
       <label for="GroupName">GroupName</label> 
       <input class="form-control" id="GroupName" name="GroupName" type="text" value=""> 
       <span class="field-validation-valid" data-valmsg-for="GroupName" data-valmsg-replace="true"></span> 
      </div> 
      <div class="btn-group"> 
       <input type="submit" value="Guardar" class="btn btn-success"> 
       <a class="btn btn-default" href="/Picture">Cancelar y volver a la lista de Fotografias</a> 
      </div> 

回答

1

您已包括

@Html.HiddenFor(x => x.GroupName) 

@Html.TextBoxFor(x => x.GroupName) 

當您初始化模型時,隱藏輸入的值將是GroupName的默認值。 null

當POST,所述DefaultModelBinder的屬性GroupName值設置爲它從表單數據(即隱藏的輸入的讀出的第一個值),並忽略具有相同名稱的任何後續值,所以屬性始終null

刪除隱藏的輸入,您的模型將與文本框中的值正確綁定。

0

那是因爲你沒有指定動作和控制器, 在表單中添加動作和控制器的名稱

@using(Html.BeginForm("AddGroup","Picture"))