我不确定如何使用复合键。
我的分类表有CategoryId(PK,FK),LanguageId(PK,FK),CategoryName
CategoryId | LanguageId | CategoryName
1 | 1 | Car
1 | 2 | Auto
1 | 3 | Automobile
etc.
我正在关注this设计
默认操作类似于
//
// 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) }) %>
所以网址是
/Category/Edit/5-5
和
//
// GET: /Category/Edit/5-5
public ActionResult Edit(string id)
{
// parse id
return View();
}
或将路线更改为
/Category/Edit/5/5
还是有更好的方法?
答案 0 :(得分:4)
嗯,这比我想象的容易:-)只需在ActionLink中将2个参数放入RouteValues中,就可以生成查询字符串。
<%= Html.ActionLink("Edit", "Edit", new { id= item.CategoryId, lang= item.LanguageId }) %>
网址为Category/Edit/1?lang=3
所以它更多地是关于路由而不是我的问题中的任何其他内容。更多关于this
答案 1 :(得分:0)
Yes, there is a better way.您还可以确定user's language and culture from the request以确定要使用的数据库中的哪条记录。我不会想出一个像1 =英语2 =德语的随机方案。使用standard culture identifiers.