2

だから私は私が取り組んでいるこのウェブプロジェクトを手に入れました、そして4/5ビューで私は使用しています

 @Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})

「Create New View」を除くすべてのビューがリストに戻りますこれはロードされない唯一のビューでもあり、「System.NullReferenceException」の例外が発生します

これが clientID を渡せない唯一のビューである理由について混乱しています (これだけでなく、新しい County を作成するために CountyID も必要なので、それが null であることを教えてくれます。

上記のコード行を削除すると、コードは正常に実行されます (作成ビューに 2 つの ID フィールドを追加する場合を除く)。

これが作成のためのgivinコントローラーからの私のアクションです

    // GET: /County/Create
    public ActionResult Create()
    {
        return View();
    }

比較のために、同じコントローラーの編集アクションを次に示します

    public ActionResult Edit(int id = 0)
    {
        dbCounty countys = db.Countys.Find(id);
        if (countys == null)
        {
            return HttpNotFound();
        }
        return View(countys);
    }

また、このコードを新しいアクションリンクの作成に追加しようとしましたが、このエラーが発生したときです

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily         unavailable.
Most likely causes:

The directory or file specified does not exist on the Web server.
The URL contains a typographical error.
A custom filter or module, such as URLScan, restricts access to the file.

ここで私は何を間違っていますか....

私のプロジェクトは階層モデル、One Client Many Countys で構築されています (さらにコードが必要な場合はお知らせください)

前もって感謝します。

ヒント:

このコード行を削除すると機能する理由(私の仮定)が必要です(したがって、このコード行である必要があります??)-別の方法で渡す必要があります(clientIDの値は1です)

 @Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})

必要なインデックス コントローラの編集:

    public ActionResult Index([Bind(Prefix="id")] int CID=0)
    {
        var clnt = db.Clients.Find(CID);

        if (clnt != null)
        { 
            return View(clnt);
        }

        return HttpNotFound();

     }

編集: Countys Controller からの新しい作成アクション

    public ActionResult Create(int id=0)
    {
        dbCounty countys = db.Countys.Find(id);
        if (countys == null)
        {
            return HttpNotFound();
        }
        return View(countys);
    }

私も走ってみました

    public ActionResult Create(int id=0)
      {
        dbClient Client = db.Clients.Find(id);
        if (Client == null)
        {
            return HttpNotFound();
        }
        return View(Client);
    }

(私は clientID を渡しているので、モデルが構築される方法では、clientID(passedVariable) を使用してデータベースにこの新しい行を作成するときに郡 ID を追加する必要があります。

4

3 に答える 3

0

チェックイン

@Html.ActionLink("リストに戻る", "インデックス", new { id=Model.ClientID})

モデルが null ではありません。そうしないと、null 参照例外が発生します

于 2013-07-02T13:44:54.523 に答える