2

私のasp.net MVC 3プロジェクトでは、会社に関連する連絡先を作成したいと考えています.

連絡先を直接作成するか、会社の詳細ビューを介して新しい連絡先を追加し、companyId を渡してその会社を連絡先作成フォームのドロップダウンに設定することができます

問題は、ドロップダウンで渡された会社をデフォルトとして取得できないことです。

Global.asax

routes.MapRoute("contactCreate", "contact/toevoegen/{companyid}", new { action = "ContactCreate", controller = "Backend", companyid = UrlParameter.Optional });

コントローラー方式

public ActionResult ContactCreate(int? companyid)
{
    Contact contact = new Contact();

    ViewBag.StatusList = srep.getContactStatusses();

    ViewBag.CompanyId = companyid;

    return View(contact);
}

意見

@model xxx.Models.Contact

...

        <div class="editor-label">
            @Html.LabelFor(model => model.bedrijf_id)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.bedrijf_id, new SelectList(ViewBag.Bedrijven, "bedrijf_id", "bedrijf_naam",ViewBag.CompanyId), "--Kies bedrijf--")
            @ViewBag.CompanyId
            @Html.ValidationMessageFor(model => model.bedrijf_id)
        </div>
...

@ViewBag.CompanyId に値があります。

選択した値を設定していない理由は何ですか?

4

1 に答える 1

1

「DropDownListFor」を実行すると、モデルから渡された値を選択した値と一致させようとします。したがって、あなたの例では、選択した値として「bedrijf_id」を使用します。選択した値をモデルの外部から取得したいようです。

コメントから、あなたが望むのは次のような DropDownList だけだと思います:

@Html.DropDownList("DropDownList", new SelectList((ViewBag.Bedrijven, "bedrijf_id", "bedrijf_naam", ViewBag.CompanyId), "--Kies bedrijf--") 

お役に立てれば。

于 2011-08-23T05:22:09.637 に答える