我是使用MVC 3 ASP.NET的新手,我开始使用Razor视图引擎。我正在使用JavaScript中的API,因此我将此代码放在我的视图中。我也通过实体框架使用数据库,并且我传递了一个包含字符串和整数的简单类的IEnumerable列表作为我的模型。
我可以在视图中替换模型中的项目,根据值重新排序我的反对列表并在我的JavaScript中使用C#模型值但是我无法将JavaScript中计算的值保存回我的视图中知道这是因为我的C#代码在服务器上运行,JavaScript在客户端机器上运行。
我想知道将我在IEnumerable列表中的每个项目使用JavaScript计算的值保存到我的C#模型中的最佳方法是什么,这样我就可以在我的视图中根据此值对输出重新排序。
由于
答案 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是不好的做法,它们应该是外部文件。