2017-04-09 10 views
2

こんにちは私は特定のデータを表示する際にエラーがあります。私はモデルを介してパラメータを渡し、新しいインスタンスの作成に関してはエラーが発生します。ここに私のコードは次のとおりです。ストアドプロシージャを使用して特定のデータをパラメータで表示

コントローラ

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public IActionResult ViewEmployeeSalary(spGetSalaryPerEmployee getsal) 
    { 
     var salary = _Context.Set<spGetSalaryPerEmployee>().FromSql("spGetSalaryPerEmployee @empID = {0}", getsal.EmployeeID).AsNoTracking(); 
     return View(salary); 
    } 

ビュー これを使用すると、詳細ページへ

@foreach(var item in Model) 
 
{ 
 
    a class="btn btn-primary btn-sm" asp-controller="Salary" asp-action="ViewEmployeeSalary" asp-route-id="@item.EmployeeId"><span class="glyphicon glyphicon-dashboard" style="vertical-align:middle;margin-top: -5px"></span> Salary Details</a> 
 
}

をリダイレクトするためにクリックボタンはこちらその

error

私は本当に何が起こるか本当にないが、私はインスタンスを作成する必要が次のように述べた。それは詳細

@model PEMCOLoan.DAL.Entities.spModels.spGetSalaryPerEmployee 

@{ 
    ViewBag.Title = "Salary Details"; 
} 

<h2>@Html.DisplayFor(model => model.FullName)'s Salary Details</h2> 

<table class="table"> 
    <tr> 
     <td class="form-horizontal">ID:</td> 
     <td>@Html.DisplayTextFor(model => model.EmployeeID)</td> 
    </tr> 

    <tr> 
     <td class="form-horizontal">Salary Amount:</td> 
     <td>@Html.DisplayFor(model => model.Salary)</td> 
    </tr> 

    <tr> 
     <td class="form-horizontal">Remarks:</td> 
     <td>@Html.DisplayTextFor(model => model.Remarks)</td> 
    </tr> 
</table> 

私はこのエラーを取得を閲覧ページ。 私はasp.netコアとefコアに関する知識がまだありますが、今のところこの言語のために勉強しています。私はこの言語で少し新しいので、本当にあなたの助けが必要です。

何か提案があれば幸いです!

+1

エラーメッセージの画像は挿入せず、代わりにテキストを挿入してください。イメージをリンクすることで、このエラーの検索エンジンからヒットすることはありません。 –

+0

質問タイトルにタグをつけないようにしてください。タグを正しく使用する方法については、http://stackoverflow.com/help/taggingを参照してください。 – Tseng

答えて

1

コントローラメソッドはエラー状態として単一のレコードを返す必要があります。あなたはこのようなものに変更する必要があるので、今では、リストを返します。

var salary = _Context.Set<spGetSalaryPerEmployee>().FromSql("spGetSalaryPerEmployee @empID = {0}", getsal.EmployeeID).AsNoTracking().SingleOrDefault(); 
    //salary now is single record 
    return View(salary); 

そして多分あなたはsalary変数をチェックする必要があり、あなたがエラーを持っているだろうから、それは見るために渡す前にnullではありません。

+0

こんにちは@Mantas、コードはうまくいくようですが、空白のページにリダイレクトされました。理由はわかりません。私はASPアクションをチェックしようとしましたが、それは何も間違っているようです。私のコードをちょっと見てもらえますか? –

+0

ビューにブレークポイントを置くと、ヒットしていますか?詳細を含むビューが最初に表示され、空白にリダイレクトされますか?空白のページにまっすぐ行くのですか? –

+0

私はブレークポイントを入れました、そして、それは私のViewEmployeeSalaryクラスを通過しなかったようです。私はコントローラーとアクションの両方をチェックして以来、私にとっては奇妙に思えます。 –

関連する問題