2011-11-29 43 views
2

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

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

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

感谢

回答

2

有一个客户端(浏览器),只有这样,跟你的服务器是通过HTTP。

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

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

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

5

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

或者你可以发布他们使用AJAX POST或使用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) 

})