2017-03-14 10 views
0

テーブル内に複数のキーがあるCRUDに問題があります。私は作成、更新、および詳細の問題を解決しますが、削除ではできません。私は削除ページを開くことができますが、Controller.DeleteConfirmed()私は2つのキーを渡すことはできません。ASP.net 1つ以上のキーを持つコアクルード

@model Teste_db.Models.Vdcped 

@{ 
    ViewData["Title"] = "Delete"; 
} 

<h2>Delete</h2> 

<h3>Are you sure you want to delete this?</h3> 
<div> 
    <h4>Vdcped</h4> 
    <hr /> 
    <dl class="dl-horizontal"> 
     <input type="hidden" asp-for="PedEmpCod" /> 
     <input type="hidden" asp-for="PedNum" /> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedSituacao) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedSituacao) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedCliCgc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedCliCgc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedArcCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedArcCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVenCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVenCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedComiss2) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedComiss2) 
     </dd> 
      @Html.DisplayNameFor(model => model.PedDtemi) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtemi) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDtultentrega) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtultentrega) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDtpgto) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtpgto) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedCpgCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedCpgCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedTipo) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedTipo) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlmerc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlmerc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlacresc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlacresc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVldesc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVldesc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlavista) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlavista) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVltot) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVltot) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlicmretido) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlicmretido) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDesconto) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDesconto) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlfrete) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlfrete) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedNrpedcli) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedNrpedcli) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedAcresc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedAcresc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedNfsimpfat) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedNfsimpfat) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedSimplesfat) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedSimplesfat) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedNfrem) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedNfrem) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlicmsubst) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlicmsubst) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedQtdparc) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedQtdparc) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlparcini) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlparcini) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlparcela) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlparcela) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVldesc2) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVldesc2) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedIndfrete) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedIndfrete) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedPrazo) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedPrazo) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedTpgCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedTpgCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedLocal) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedLocal) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedPedtroca) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedPedtroca) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlbaseicms) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlbaseicms) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlicms) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlicms) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedPorCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedPorCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedStpCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedStpCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedRotCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedRotCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedOcgNum) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedOcgNum) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlbasesubst) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlbasesubst) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedPesoliq1) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedPesoliq1) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedPesoliq2) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedPesoliq2) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedMotCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedMotCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDtpreentrega) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtpreentrega) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedCliCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedCliCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlpago) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlpago) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDtimport) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtimport) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedStimport) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedStimport) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedHoraini) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedHoraini) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedHorafin) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedHorafin) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedDtvis) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedDtvis) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedObsvis) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedObsvis) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedNfiSerie) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedNfiSerie) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedTnfCod) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedTnfCod) 
     </dd> 
     <dt> 
      @Html.DisplayNameFor(model => model.PedVlipi) 
     </dt> 
     <dd> 
      @Html.DisplayFor(model => model.PedVlipi) 
     </dd> 
     </dd> 
    </dl> 

    <form asp-action="Delete"> 
     <div class="form-actions no-color"> 
      <input type="submit" value="Delete" class="btn btn-default" /> | 
      <a asp-action="Index">Back to List</a> 
     </div> 
    </form> 
</div> 

VdcpedControllerのコード:ここ

は、ビューのコード(delete.cshtml)です。 削除ではIDとペッドはOKですが、削除確認ではIDはOKで、pedはnullです。

public async Task<IActionResult> Delete(string id, Int32 ped) 
{ 
    if (id == null) 
    { 
     return NotFound(); 
    } 

    var vdcped = await _context.Vdcped 
     .SingleOrDefaultAsync(m => m.PedEmpCod == id && m.PedNum == ped); 
    if (vdcped == null) 
    { 
     return NotFound(); 
    } 

    return View(vdcped); 
} 

// POST: Vdcped/Delete/5   
[HttpPost, ActionName("Delete")] 
[ValidateAntiForgeryToken] 
public async Task<IActionResult> DeleteConfirmed(string id, Int32 ped) 
{ 

    var vdcped = await _context.Vdcped.SingleOrDefaultAsync(m => m.PedEmpCod == m.PedEmpCod && m.PedNum == ped); 
    _context.Remove(vdcped); 
    await _context.SaveChangesAsync(); 
    return RedirectToAction("Index"); 
} 
+0

はここにいくつかのより多くの情報が必要 - あなたのビューは、名前としてPEDに対応するフィールドが含まれていますか?あるいは、クエリ文字列にはこのようなキーバリューの組み合わせがありますか?私が求めていることは、このメソッドはどのように呼び出されているかということです。 – sleeyuen

+0

私はその意見を持っています。ビューは「削除」です。インデックスビューで開始、私はリストで削除を選択し、削除を確認するために表示に移動します。このビューでは、このボタンをクリックすると削除ボタンが表示され、エラーが表示されます。デバッグでは、変数pedがnullですが、変数IDはokです –

+0

削除ボタンをクリックしたページのコードを追加します。ここで何が問題になっているか把握するのは難しいです。 – sleeyuen

答えて

0

formタグの境界内にあなたの隠された入力を動かす考えてみましょう:

<form asp-action="Delete"> 
    <input type="hidden" asp-for="PedEmpCod" /> 
    <input type="hidden" asp-for="PedNum" /> 

    <div class="form-actions no-color"> 
     <input type="submit" value="Delete" class="btn btn-default" /> | 
     <a asp-action="Index">Back to List</a> 
    </div> 
</form> 

この方法はフォームが送信されると、フィールドが実際にコントローラに送信されます。

また、あなたはおそらく次へDeleteConfirmedの署名を変更する必要があります:

public async Task<IActionResult> DeleteConfirmed(string id, Int32 PedNum) 
+0

Tks !!!!!今はうまくいく。 –

関連する問題