1

私はasp.netmvc4 Webアプリc#を使用しています。私は次のモデルを持っています:

 public class Job
{
    public int id { get; set; }
    public string description { get; set; }
    public string company { get; set; }
    public JobType jobType { get; set; }


    //public int JobTypeId { get { return this.jobType.id; } }
}

ここで、DropDownListを介してjobType属性が設定されるcreateアクションを記述します。作成アクション:

//
    // GET: /Job/Create

    public ActionResult Create()
    {
        IEnumerable<JobType> jobtypes = db.JobTypes.ToList();
        ViewData.Add("jobTypeList", new SelectList(jobtypes , "id", "name"));
        return View();
    }

    //
    // POST: /Job/Create

    [HttpPost]
    public ActionResult Create(Job job)
    {
        if (ModelState.IsValid)
        {
            db.Jobs.Add(job);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(job);
    }

意見:

<div class="editor-label">
        @Html.LabelFor(model => model.jobType)
    </div>
    <div class="editor-field">
        @Html.DropDownList("jobTypeList")
        @Html.ValidationMessageFor(model => model.jobType)
    </div>

DropDownListは、既存のジョブタイプを正常に一覧表示するように機能しています。ただし、ジョブが作成されると、ジョブのジョブタイプは設定されません(作成されたジョブのジョブ行にジョブタイプIDが設定されません)。asp.net mvcを初めて使用するため、フォームが作成後のアクションに何を渡すのかわかりません。ジョブタイプオブジェクトまたはジョブタイプIDを渡しますか?作成されたジョブのジョブタイプIDが設定されないのはなぜですか?作成後のアクションで自分自身のジョブタイプIDを設定する必要がありますか?もしそうなら、どうすればDropDownListの選択された値を取得できますか?

4

2 に答える 2

0

編集:

したがって、ドロップダウンリストで選択した値のIDを取得するには、次のような行があります。

int contentId= APIFactory.getContentAPI().getID(department.SelectedValue);

ここで、関数getId()は名前(ドロップダウンの値)を取得し、選択した部門のIDに対してデータベースクエリを実行します。これが私のgetID()関数です

public int getID(String deptName)
{
    Dictionary<string, object> where = new Dictionary<string, object>();
    where.Add(DEPTNAME, deptName);
    DataTable dt = db.Query(ID, TABLE, where);
    return (int)dt.Rows[0][ID];
}

注:これにはAPIFactory全体は必要ありません。私が持っている行の代わりにクエリをスローするだけで、同じように機能します。ただし、同じクエリを頻繁に使用する場合は、それをお勧めします。

編集:aspxページではなくcshtmlページを使用しているため、ここで説明する方法を使用して値を取得し、次に私の方法を使用してIDを取得します: ドロップダウンリストの選択された値を取得する方法

于 2013-01-31T19:18:06.960 に答える
0

現在ビューを設定している方法では、選択したジョブタイプのIDのみが投稿されます。

Createメソッドを更新しint jobTypeListて、指定された値に基づいてジョブの追加のみを取り込み、作成することができます。

于 2013-01-31T19:23:04.433 に答える