0

ここでまた大きな問題が。

私はモデルを持っています:

public class Lead
    {
        [System.ComponentModel.DataAnnotations.Column("le_codlead")]
        public int LeadID {get; set; }

        [System.ComponentModel.DataAnnotations.Column("le_descr1")]
        [Required(ErrorMessage="Inserire Nome del Lead")]
        [Display(Name="Nominativo Lead")]
        public string Name1 {get; set;}

        [System.ComponentModel.DataAnnotations.Column("le_descr2")]
        [Display(Name = "Nominativo secondario")]
        public string Name2 { get; set; }
        ...
        ...
        ...
    }

コントローラー (Create メソッド用):

[HttpPost]
        public ActionResult Create(Lead lead)
        {
            if (ModelState.IsValid)
            {
                db.Leads.Add(lead);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }
            return View(lead);
        }

これはビューです:

@model CRMArcadia.Models.Lead

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true, "ATTENZIONE! Compilare tutti i campi obbligatori")
    <fieldset>
        <legend>Lead</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name1)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name1)
            @Html.ValidationMessageFor(model => model.Name1)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name2)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name2)
            @Html.ValidationMessageFor(model => model.Name2)
        </div>
        ...
        ...
        ...
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset> }

しかし、新しいリードを挿入しようとすると、記事のタイトルのように例外がスローされます: エンティティ フレームワーク: 「ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響しました。」IDキー(この場合はLeadID)が更新されていないことが原因であるとWebで読みました。IDキーのビューにhiddenfor属性を挿入することを提案しているので、次のようにしました。

    @Html.HiddenFor(model => model.LeadID)

しかし、これでは [作成] ボタンを押しても何も起こりません。

誰かがこの問題の解決策(または回避策;)を持っていますか?

ありがとう。

4

1 に答える 1

1

EF と通信するための追加のレイヤーはありますか? あなたのエンティティコンテキストは何ですか?

更新シナリオの場合:

作成/編集に同じアクションを使用している場合は、 @Html.HiddenFor(model => model.LeadID) -hidden フィールドをブロックの間に配置します@using (Html.BeginForm()) { .... </fieldset> }

それでも解決しない場合は、この記事MSDN - Working with Objects を参照してください。

于 2012-06-27T17:46:54.893 に答える