在ASP.NET MVC3中提供给用户的页面的唯一ID

时间:2012-03-16 16:48:10

标签: asp.net-mvc-3 razor uniqueidentifier

在我的ASP.NET MVC 3站点中,我需要让ajax在页面发送到用户浏览器后异步检索一些ActionResult数据。

为了区分页面,我需要为每个页面“配备”一个唯一标识符,js代码可以访问一个能够提供给某些动作调用的“通行证”。

我可以在我的Index操作上生成此标识符作为System.Guid,返回视图。我可以将它分配给ViewBag并保存到我的数据存储中以供即将使用。我应该在页面上呈现什么,以允许我的js代码访问它?一个隐藏的输入就足够了?如何在Razor标记中实现此设置?

2 个答案:

答案 0 :(得分:2)

使用HiddenFor HTML帮助器,它将呈现隐藏的输入

@Html.HiddenFor(model => model.PageId)

您可以在进行ajax调用之前在javascript代码中访问此内容。

  var pageId=$("#PageId").val();
  $.post("mycontroller/action"+pageId,function(data)
   {
        //do whatever with response.
   });

答案 1 :(得分:1)

隐藏的输入将是完美的:

<input type="hidden" name="pageId" value="@Model.PageId" />