在Asp.Net MVC 4中删除Url中的查询字符串格式中的控制器和操作

时间:2014-03-08 05:08:38

标签: asp.net-mvc asp.net-mvc-4

我正在使用Razor开发Asp.net MVC 4。我的项目的网址就像

localhost:port / category1

localhost:port / category2等,而我的控制器是home并且action是MyCustomAction

我正在使用带有href="javascript:ShowPage(pagenmbr)

的ul li和锚标记的Category1页面上使用Paging

ShowPage函数的代码是$('#currentpage').val(pagenmbr); $('#myform').submit();

其中currentpage是我的cshtml页面上的隐藏字段

我的表单是

@using(Html.BeginForm("home","MyCustomAction",FormMethod.Post,new { @id="myform"})

并且当我按任何链接以使任何页面功能正常工作

但在这种情况下,我的网址变为

  

本地主机:端口/类别1控制器=家庭及安培;行动= MyCustomeAction

虽然我不希望这个url模式url应该是

  

本地主机:端口/类别1

我是以错误的方式做事,请帮助我...... 请帮帮我

1 个答案:

答案 0 :(得分:2)

显然,你的路由有问题。尝试从Route注册类中发布代码。

同样适用于以下行:

@using(Html.BeginForm("home","MyCustomAction",FormMethod.Post,new { @id="myform"})

尝试将其切换为:

<form method="post" id="myform">

执行此操作会强制表单始终提交到当前的Url。

你不能使用HtmlHelper来生成它,因为你需要指定只能在actionName和controllerName之后传递的htmlAttributes。