2

複合キーの使い方がわかりません。

私のCategoriesテーブルにはCategoryId(PK、FK)、LanguageId(PK、FK)、CategoryNameがあります

CategoryId | LanguageId | CategoryName
1          | 1          | Car
1          | 2          | Auto
1          | 3          | Automobile
etc.

私はこのデザインに従っています

デフォルトのアクションは次のようになります

//
// GET: /Category/Edit/5

public ActionResult Edit(int id)
{
    return View();
}

およびActionLink

<%= Html.ActionLink("Edit", "Edit", new { id= item.CategoryId }) %>

私は次のようなものを使用する必要があります

<%= Html.ActionLink("Edit", "Edit", new { id= (item.CategoryId + "-" + item.LanguageId) }) %>

したがって、URLは

/Category/Edit/5-5

//
// GET: /Category/Edit/5-5

public ActionResult Edit(string id)
{
    // parse id

    return View();
}

またはルートを次のようなものに変更します

/Category/Edit/5/5

または、もっと良い方法がありますか?

4

2 に答える 2

4

思ったより簡単です :-) ActionLink の RouteValues に 2 つのパラメーターを入れるだけで、クエリ文字列が生成されます。

<%= Html.ActionLink("Edit", "Edit", new { id= item.CategoryId, lang= item.LanguageId }) %>

URLはCategory/Edit/1?lang=3

したがって、私の質問では、何よりもルーティングに関するものです。詳細はこちら

于 2010-04-04T23:27:46.803 に答える
0

はい、もっと良い方法があります。また、リクエストからユーザーの言語と文化を判断して、データベースのどのレコードを使用するかを 判断することもできます。そして、1 = 英語 2 = ドイツ語のようなランダムなスキームは思いつきません。標準カルチャ識別子を使用します。

于 2010-04-04T20:24:19.850 に答える