C# 会话变量的MVC Razor单选按钮值
是否有人知道如何在MVC中将“是/否”单选按钮设置为会话变量,以便在以后的过程中检查会话变量。我不想将单选按钮的值存储在我的模型上,因为用户必须编辑和保存,因此将该用户默认为该复选框值C# 会话变量的MVC Razor单选按钮值,c#,asp.net-mvc,asp.net-mvc-4,model,radio-button,C#,Asp.net Mvc,Asp.net Mvc 4,Model,Radio Button,是否有人知道如何在MVC中将“是/否”单选按钮设置为会话变量,以便在以后的过程中检查会话变量。我不想将单选按钮的值存储在我的模型上,因为用户必须编辑和保存,因此将该用户默认为该复选框值 @Html.Label("New Report") @Html.RadioButton("requestNewReport", "1")Yes @Html.RadioButton("requestNewReport", "0", new { @checked = "checked" })No 感谢使用Jquer
@Html.Label("New Report")
@Html.RadioButton("requestNewReport", "1")Yes
@Html.RadioButton("requestNewReport", "0", new { @checked = "checked" })No
感谢使用Jquery和标记有HttpPost属性的控制器方法,您可以非常轻松地完成这项工作,您的控制器方法如下所示:
[HttpPost]
public ActionResult GetSessionVariable()
{
const string sessionVariableName = "MySessionVariable";
var sessionVariable = Session[sessionVariableName] as string;
if (sessionVariable == null)
{
Session[sessionVariableName] = "No";
sessionVariable = "No";
}
return Content(sessionVariable);
}
显然,您的会话变量会在程序中的其他地方发生变化,这只是得到它现在的状态,如果尚未赋值,则将其设置为默认值
然后,在您的视图中,您可以有一个这样的表单,其中包含单选按钮和一个输入按钮,当单击该按钮时,会运行一个Javascript方法以从上述控制器方法获取值,而无需刷新页面:
<form id="MyForm">
<fieldset>
<legend>My Form</legend>
<p>
<label>Radio buttons</label>
<input type="radio" name="radioYesNo" id="radioNo" value="No" checked="checked" />
<label for="radioNo">No</label>
<input type="radio" name="radioYesNo" id="radioYes" value="Yes" />
<label for="radioYes">Yes</label>
<button type="submit" onclick="UpdateRadioBox();">Update Radio Button</button>
</p>
</fieldset>
</form>
此更新的Javascript方法如下所示,它使用jquery提供的ajax功能来更新单选按钮:
<script>
function UpdateRadioBox() {
$("#MyForm").submit(
function () {
var url = "Home/GetSessionVariable";
$.ajax
(
{
type: "POST",
url: url,
success: function (data) {
if (data == "Yes") {
$("#radioYes").attr('checked', 'checked');
} else {
$("#radioNo").attr('checked', 'checked');
}
}
}
);
return false;
}
);
}
</script>
您不必在输入按钮下运行Javascript,例如,您可以在计时器上每x秒执行一次