2017-03-22 44 views
0

私は以下の私のコードを参照パラメータを追加する方法についてに質問があります。ASP.NETコアMVCとEFコア1.1

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public IActionResult Edit(Employee emp) 
    { 
     try 
     { 

      Employee updateEmp = _Context.Employee.FirstOrDefault(c => c.Idemployee == emp.Idemployee); 
      updateEmp.Address = emp.Address; 
      updateEmp.Age = emp.Age; 
      updateEmp.ContactNumber = emp.ContactNumber; 
      updateEmp.FullName = emp.FullName; 
      updateEmp.Gender = emp.Gender; 
      updateEmp.IsActive = emp.IsActive; 

      _Context.Employee.Update(updateEmp); 
      _Context.SaveChanges(); 

      return RedirectToAction("Index"); 
     } 
     catch (Exception) 
     { 

      throw; 
     } 
    } 

私がここでやろうとしています何が私がemp.Idemployeeを抽出しようとしていますですクエリ文字列からはできませんが、エラーnull例外に私をリダイレクトすることができませんでした。

私はモデルを使用して、cshtmlから詳細を抽出しています。

public IActionResult Edit(int id) 
    { 
     var editEmployee = _Context.Employee.FirstOrDefault(c => c.Idemployee == id); 

     return View(editEmployee); 
    } 

私は何が間違っているのかわかりませんが、Idemployee以外の情報はすべて抽出されています。

@model Demo101.DAL.Entities.Models.Employee 
 

 
@{ 
 
    ViewBag.Title = "Edit Employee"; 
 
} 
 

 
<h2>@ViewData["Title"]</h2> 
 

 
<form asp-controller="Employee" asp-action="Edit" method="post" class="form-horizontal" role="form"> 
 
    <div class="form-horizontal"> 
 
     <div asp-validation-summary="All" class="text-danger"></div> 
 

 
     <!--FullName--> 
 
     <label asp-for="Idemployee" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.LabelFor(model => model.Idemployee, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.Idemployee) 
 
     </div> 
 

 
     <!--FullName--> 
 
     <label asp-for="FullName" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.TextBoxFor(model => model.FullName, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.FullName) 
 
     </div> 
 

 
     <!--Age--> 
 
     <label asp-for="Age" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.TextBoxFor(model => model.Age, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.Age) 
 
     </div> 
 

 
     <!--ContactNumber--> 
 
     <label asp-for="ContactNumber" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.TextBoxFor(model => model.ContactNumber, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.ContactNumber) 
 
     </div> 
 

 
     <!--Address--> 
 
     <label asp-for="Address" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.TextBoxFor(model => model.Address, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.Address) 
 
     </div> 
 

 
     <!--Gender--> 
 
     <label asp-for="Gender" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.TextBoxFor(model => model.Gender, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.Gender) 
 
     </div> 
 

 
     <!--IsActive--> 
 
     <label asp-for="IsActive" class="col-md-2 control-label"></label> 
 
     <div class="col-md-10"> 
 
      @Html.CheckBoxFor(model => model.IsActive, new { @class = "form-control" }) 
 
      @Html.ValidationMessageFor(model => model.IsActive) 
 
     </div> 
 

 
     <!--Create Button--> 
 
     <div class="col-md-offset-2 col-md-10"> 
 
      <input type="submit" value="Edit Employee" class="btn btn-default" /> 
 
     </div> 
 
    </div> 
 
</form>

ありがとう!

+0

あなたはCSHTMLページに従業員のモデルを使用している、これを与えますか?あなたがcshtmlコードを投稿した場合にも役立ちます。 –

+0

こんにちは、@JasonH、はい私は自分のCSHTML上で使用しています、私はすぐに私の記事を更新します... –

答えて

3

ルックを、行く

<!--IdEmployee--> 
<label asp-for="Idemployee" class="col-md-2 control-label"></label> 
<div class="col-md-10"> 
    @Html.LabelFor(model => model.Idemployee, new { @class = "form-control" }) 
    @Html.HiddenFor(model => model.Idemployee) 
    @Html.ValidationMessageFor(model => model.Idemployee) 
</div> 
+0

助けてくれてありがとう! –

+0

あなたは大歓迎です –

2

ビューにはEmployee値のフィールドは含まれていません。あなたはラベルを持っています、あなたは検証メッセージを持っていますが、それ自体は価値がありません。したがって、サーバーへのPOSTには価値がありません。

どこかにフォーム内の追加:以下の私のコードで

@Html.HiddenFor(model => model.Idemployee) 
関連する問題