0
         <HttpPost()> _
        Function Create(ByVal cbadata As CBAData) As ActionResult
            If ModelState.IsValid Then
                db.CBADatas.Add(cbadata)
                '    db.SaveChanges()
                Return RedirectToAction("Edit", "CBAData", cbadata)
            End If
        End Function


    '
    ' GET: /CBAData/Edit/5

    Function Edit(Optional ByVal id As Integer = Nothing) As ActionResult
        Dim cbadata As CBAData = db.CBADatas.Find(id)
        If IsNothing(cbadata) Then
            Return HttpNotFound()
        End If
        ViewBag.idCustomer = New SelectList(db.Customers, "id", "Name", cbadata.idCustomer)

        Return View(cbadata)
    End Function

    '
    ' POST: /CBAData/Edit/5

    <HttpPost()> _
    Function Edit(ByVal cbadata As CBAData) As ActionResult
        If ModelState.IsValid Then
            db.Entry(cbadata).State = EntityState.Modified
            db.SaveChanges()
            Return RedirectToAction("Index")
        End If

        ViewBag.idCustomer = New SelectList(db.Customers, "id", "Name", cbadata.idCustomer)
        Return View(cbadata)
    End Function

新しいCBADataアイテムを作成するための起動ポイントとして作成ビューを使用しようとしています。簡単な情報を選択してから[編集]ビューに進み、モデルが有効な場合は最終的にデータが保存されるようにします。

上記のコードは正しくナビゲートされません。db.CBADatasのFindメソッドに到達すると、リストに存在しません。これは可能ですか?

コンテキストを含むすべてが編集ビュー用に破棄および再作成されているためですか?

4

1 に答える 1

0

次のように編集アクションを呼び出します

<HttpPost()> _
    Function Create(ByVal cbadata As CBAData) As ActionResult
        If ModelState.IsValid Then
            db.CBADatas.Add(cbadata)
            '    db.SaveChanges()
            Return RedirectToAction("Edit", "CBAData", new{ id = cbadata})
        End If
    End Function
于 2013-03-12T19:10:24.153 に答える