Any alternative to hide querystring from Html.actionlink on ASP.NET MVC Page?
Posted
by Madhavi
on Stack Overflow
See other posts from Stack Overflow
or by Madhavi
Published on 2010-06-01T04:13:35Z
Indexed on
2010/06/01
4:23 UTC
Read the original article
Hit count: 1420
asp.net-mvc
|asp.net-mvc-2
Hi
I have a page called SearchDcouments.aspx that displays all the matching documents as Hyperlinks in the table format as below. When the User clicks on any particular document, the sample url will be: http://localhost:52483/Home/ShowDocument?docID=280
So that the DocumentID is passed as Querystring to the ControllerMethod ShowDocument and the ID is visible in the URL. Now for Security purposes, I want to hide this way of passing the Querystring parameters.
Wondering what are the alternatives to hide the DocID from the URL?
Appreciate your responses.
Thanks
Code in the View:
<tbody>
<% foreach (var item in Model){ %>
<tr>
<% string actionTitle = item.DocumentType.ToLower() == "letter" ? "Request References" : "Request Slides"; %>
<td>
<%= Html.ActionLink(actionTitle, MVC.Home.ShowDocument(item.DocumentID))%>
</td>
</tr>
<% } %>
</tbody>
Code in the Controller:
[Authorize]
[HttpGet]
public virtual ActionResult ShowDocument(int docID)
{
Document document = miEntity.GetDocumentByID(docID);
switch (document.DocType.ToLower())
{
case "slide":
SlideRequestViewModel slide = new SlideRequestViewModel(docID);
return View(MVC.Home.Views.ShowSlideRequest, slide);
case "letter":
RefRequestViewModel rrq = new RefRequestViewModel(docID);
return DoShowRefRequest(rrq);
default:
break;
}
// Here - let's get back home
return RedirectToAction(MVC.Home.Default());
}
© Stack Overflow or respective owner