2014-08-27 95 views
0

我正在开发一个应用程序,它有很多客户端JavaScript处理导航响应应用程序(最终由一个巨大的形式组成)周围。在服务器端访问客户端变量

基本上,随着用户在表单中前进(即按下一个在javascript中处理客户端的按钮),我需要存储用户按下按钮的时间戳。

当触发按钮事件时,我在JavaScript变量中存储时间戳。

现在,当用户按下表单上的提交按钮并将POST请求发送到服务器时,我需要发送这些变量的值。

任何想法,我可以做到这一点?

+3

asp在serv上运行呃,js在服务器上运行。如果你想从服务器访问JS中的东西,你需要让JS通过Ajax将它发送回服务器。 – 2014-08-27 16:59:01

+2

我认为你的意思是“js在*客户*上运行”。 – 2014-08-27 18:19:15

回答

1

使用隐藏输入来存储DateTime值,并更新按钮单击事件中的值。理想情况下,根据视图模型中的属性生成此输入,否则,向您添加一个附加参数以便接受日期。例如

选项1:将其他属性添加到您的视图模型中,例如public DateTime UserDate { get; set; }并在视图

@Html.HiddenFor(m => m.UserDate) 

和在脚本,更新它的值

$('#UserDate').val((new Date()).toUTCString()); 

选项2:如果没有额外的视图模型属性

<input type="hidden" id="UserDate" name="UserDate" /> 

和在后的方法

[HttpPost] 
public ActionResult YourMethod(YourModel model, DateTime userDate) 
{ 
0

使用隐藏字段应该可以解决您的问题。用你想要的时间更新JS中的隐藏字段并访问服务器端的

+0

你有没有可能提供一个传递的代码示例,说一个基本的价值?干杯 – user3556163 2014-08-27 17:08:38

+0

请检查这个[链接](http://www.dotnetcurry.com/showarticle.aspx?ID=203) – 2014-08-27 17:13:44

+0

这似乎不是MVC – user3556163 2014-08-27 17:19:14

0

您可以将时间戳存储在隐藏的div中,然后检索并通过ajax发送。或者你可以像knockoutjs这样的数据绑定框架,甚至可以使用signalR将其立即发送回服务器。

许多方法来剥皮这只猫。

相关问题