1

我正在使用 asp.net MVC 开发事件调度程序项目,客户将在其中看到他们的议程,议程将包含不同的会话,例如注册、午餐、休息、研讨会等。

会议研讨会分为两个级别,例如可以同时举办多个研讨会,客户必须选择他想参加的研讨会。每个车间都有座位数,车间会议是随机的和多次的。

我现在可以显示研讨会,即单选按钮以及座位数,我想要的是当客户选择其中一个研讨会时,我想保存他的选择并更新座位数,如果座位为 0,我想禁用该单选按钮. 如果在页面加载时已经进行了选择,我也想展示一下,下面是我尝试过的代码,现在我不知道如何保存选择,我对 asp.net MVC 很陌生。

if (!ThisSession.Mandatory && ThisSession.SessionOptions != null && ThisSession.SessionOptions.Count > 0)
{
    using (Html.BeginForm())
    {
        foreach (DaySession ThisOption in ThisSession.SessionOptions)
        {
            <div style="width:95%;float:right;" class="OptionNode">
                <input type="radio"/>@ThisOption.Name
            </div>
        }
    }
}
4

1 回答 1

0

试试这个标记:

@using (Html.BeginForm())
{
  <div style="width: 95%; float: right;" class="OptionNode">
    @foreach (string ThisOption in Model)
    {
      <input type="radio" name="options" id="@ThisOption" value="@ThisOption"/>@ThisOption
    }
    <input type="submit" value="Save" id="btn" />
  </div>
}

关键是您需要将 name 属性设置为将收音机作为一个单元工作。
然后你必须设置 value 属性,这样你就可以在请求中找到选中的单选按钮或作为参数。
作为参数:

public List<string> _options = new List<string>
{
  "Opt1",
  "Opt2",
  "Opt3"
};

public ActionResult Index()
{
  return View(_options);
}


[HttpPost]
public ActionResult Index(string options)
{
  return View(_options);
}

您还可以在请求中找到值:

string selectedRadio = Request.Params["options"];

参数的名称必须与收音机的名称属性匹配,您从参数或请求中获得的值将是所选收音机的值属性。

于 2013-05-14T06:20:28.640 回答