你可以用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秒鐘)。
來源
2014-01-15 17:11:42
JMK
http://stackoverflow.com/questions/9525128/jquery-set-radio-button –