在我的ASP.NET MVC 3站点中,我需要让ajax在页面发送到用户浏览器后异步检索一些ActionResult
数据。
为了区分页面,我需要为每个页面“配备”一个唯一标识符,js代码可以访问一个能够提供给某些动作调用的“通行证”。
我可以在我的Index操作上生成此标识符作为System.Guid,返回视图。我可以将它分配给ViewBag并保存到我的数据存储中以供即将使用。我应该在页面上呈现什么,以允许我的js代码访问它?一个隐藏的输入就足够了?如何在Razor标记中实现此设置?
答案 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" />