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: 1470
        
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