在ASP.NETMVC3Razor中将JavaScript变量保存到C#模型中?

在ASP.NETMVC3Razor中将JavaScript变量保存到C#模型中?,javascript,asp.net-mvc,asp.net-mvc-3,razor,Javascript,Asp.net Mvc,Asp.net Mvc 3,Razor,我刚开始使用MVC3ASP.NET,并且已经开始使用Razor视图引擎。我正在使用JavaScript中的API,因此我将此代码放在我的视图中。我还通过实体框架处理数据库,并将包含字符串和int的简单类的IEnumerable列表作为我的模型传递 我可以在视图中替换模型中的项目,根据值重新排列对象列表,并在JavaScript中使用C#model值,但我无法将JavaScript中计算的值保存回视图,我知道这是因为我的C#代码在服务器上运行,JavaScript在客户机上运行 我想知道,用Jav

我刚开始使用MVC3ASP.NET,并且已经开始使用Razor视图引擎。我正在使用JavaScript中的API,因此我将此代码放在我的视图中。我还通过实体框架处理数据库,并将包含字符串和int的简单类的IEnumerable列表作为我的模型传递

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

我想知道,用JavaScript为IEnumerable列表中的每个项目计算的值保存到C#model中的最佳方法是什么,这样我就可以根据该值对对象进行重新排序,以便在视图中按顺序输出


谢谢

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

这意味着您要么使用
并提交它,要么使用ajax

ASP.NET MVC应该有可靠的结构来处理ajax请求


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

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

或者您可以使用ajax post或jquery将它们发布到您的操作中

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

})