我试图将动态数据发送到会话,以便在页面加载时,代码块将使用动态值,该代码块具有加载不同数据的LINQ语句...我试图在页面上执行所有这些操作查看方面没有去控制器..你可以通过代码更好地理解它...这只是一个想法,我想尝试,而不是在任何地方使用...
@Code
ViewData("Title") = "Index"
Dim vs As New Ve.VeDataSource
If (Session("dynamicDataToPass") = Nothing) Then
Dim q = ((From r In vs.aspnet_Roles Order By r.RoleId Select r.RoleName).Skip(1)).FirstOrDefault
ViewData("q1") = q
Else
Dim m As Integer = Convert.ToInt32(Session("dynamicDataToPass").ToString)
Dim q = ((From r In vs.aspnet_Roles Order By r.RoleId Select r.RoleName).Skip(m)).FirstOrDefault
ViewData("q1") = q
End If
Session("dynamicDataToPass") = Nothing
End Code
<h2>Index</h2>
@ViewData("q1")
<select id="secbox">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
$(document).ready(function () {
$("#secbox").change(function () {
var p= $("#secbox").val();
@Code
Session("dynamicDataToPass") = Nothing
Session("dynamicDataToPass") = //something here to set the val to session
End Code
window.location.reload();
});
});
</script>
我的问题是如何为会话分配jquery值,我不确定它是否可能..它只是一个尝试..谢谢!
答案 0 :(得分:0)
首先,因为您决定使用MVC作为开发设计模式视图应该主要包含可视标记代码(Html,CSS,JavaScript)。您的逻辑应该在您的控制器中编译,并返回一个模型,其中包含渲染视图所需的信息。
在您的情况下,解决方案是将选择框的值发布到控制器中的操作并设置会话的值
查看
$.post(/Save, {id : $("#secbox").val()}, function()
{
// DO SOMETHING
});
动作
[HttpPost]
public ActionResult Save(int id)
{
Session("dynamicDataToPass") = id
return view();
}
希望这有帮助