在ASP.NET MVC 3 Razor中将JavaScript var保存到C#模型中?

时间:2011-11-29 03:20:10

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

我是使用MVC 3 ASP.NET的新手,我开始使用Razor视图引擎。我正在使用JavaScript中的API,因此我将此代码放在我的视图中。我也通过实体框架使用数据库,并且我传递了一个包含字符串和整数的简单类的IEnumerable列表作为我的模型。

我可以在视图中替换模型中的项目,根据值重新排序我的反对列表并在我的JavaScript中使用C#模型值但是我无法将JavaScript中计算的值保存回我的视图中知道这是因为我的C#代码在服务器上运行,JavaScript在客户端机器上运行。

我想知道将我在IEnumerable列表中的每个项目使用JavaScript计算的值保存到我的C#模型中的最佳方法是什么,这样我就可以在我的视图中根据此值对输出重新排序。

由于

2 个答案:

答案 0 :(得分:5)

您可以在视图中设置隐藏的输入。然后为它们指定相关名称。您可以根据java脚本中的变量设置值。发布表单时,您可以使用相关隐藏输入的名称获取操作中的所有变量。

或者您可以使用ajax帖子或使用jquery将其发布到您的操作中。 http://api.jquery.com/jQuery.post/

$.post("action/Controller",{var1:"1",var2:"2"},function(data){
  //this will execute after the post completed(after the server response)

})

答案 1 :(得分:2)

让客户端(浏览器)与服务器通信的唯一方法是通过HTTP。

这意味着您要么使用<form>并提交它,要么使用ajax。

ASP.NET MVC应该有适当的构造来处理ajax请求。

另请注意,在视图中使用JavaScript是不好的做法,它们应该是外部文件。