私はHTMLでアクションリンクを持っています。コントローラでRouteconfigでカスタマイズされたURLを表示する方法
<a href="@Url.Action("UserWisedPost", "Blog", new { userName = item.UserName,userId=item.UserId })">@item.UserName</a>
、
public ActionResult UserWisedPost(string userId,string userName, int? page, int pageSize = 10)
{
page = page == null || page == 0 ? 1 : page;
var model = _post.GetByUserId(userId).ToPagedList((int)page, pageSize);
return View(model);
}
そしてRouteConfig
routes.MapRoute(
name: "userwisedPost",
url: "{controller}/{action}/{userName}",
defaults: new { controller = "Blog", action = "UserWisedPost", userName=UrlParameter.Optional}
);
にあなたが私の言いたいことはおそらく理解しています。私は../UserWisedPost/userName
のようなURLを表示したいが、コントローラにはuserId
でアクセスするデータが必要です。
どうすればいいですか?
これで、あなたは '../UserWisedPost/userName?userId = 123'のようなものになりましたか?もしそうなら、問題は何ですか? –
あなたのコントローラーのアクションは 'userName'を入力とし、アクションメソッドでこれを' userId'に変換する方法が必要です。あるいは、 '_post'を変更して、' userName'によって投稿を取り出すことができます。しかし、私たちはあなたのバックエンドがどのように構造化されているかわからないので、誰もあなたの問題に正確な答えを与えることはできません。 –
私はユーザーIDを表示したくありません。しかし、コントローラでは、私はユーザーIDでデータにアクセスしたいです – orbit