我可以隐藏URL中的请求信息吗?

时间:2013-08-07 05:07:20

标签: asp.net-mvc-3 url

我正在使用ASP.NET MVC 3构建一个应用程序。有一次,从一个页面到另一个页面,我的URL看起来像这样:

/Employee/EntityHome/15

其中15是传递的ID。有没有办法不在URL请求中显示它?

2 个答案:

答案 0 :(得分:1)

如果MVC能够使用post而不是get,那么请使用post。

答案 1 :(得分:1)

尝试将15作为POST参数传递给/Employee/EntityHome控制器,例如在网页中,您可以执行以下AJAX请求(通过jQuery):

function send_employee_id(value) {
  $.ajax({
    url: '<your webapp>/Employee/EntityHome',
    data: { 'id' : value },
    type: 'post',
    contentType: 'application/x-www-form-urlencoded',
    async: false,
    success: function(html) {
      // whatever on success
    });
}

将其捕获到您的MVC app控制器POST参数容器中,作为带有“id”名称的参数并执行某些操作。

您还可以尝试使用经典HTML表单发布数据:

<form action="/Employee/EntityHome" method="post">
   . . .
   <input type="hidden" name="id" />
   . . .
</form>

(在这种情况下,请参阅id控制器POST数据容器中带有EntityHome名称的参数

对于您的ASP.MVC应用,在控制器Employee中使用方法EntityHome来获取POST paramer:

[HttpPost]
public ActionResult EntityHome(string id)
{
  var employeeId = id;
  . . .
}