【问题标题】:Setting a razor variable to the value of a dropdown将剃刀变量设置为下拉列表的值
【发布时间】:2016-04-19 19:56:22
【问题描述】:

我在模态框内有一个表单,其中包含我的全部 ec2 实例列表。我正在尝试将第二个下拉列表调整为第一个下拉列表的值,以便第二个下拉列表看到实例的相对量。

<form action="/S3/AttachVolume/" method="POST">
    <div class="form-group">
        <p>Please double check the ids of your instance and volume</p>
             <label for="instanceId">InstanceId:</label>
             <select class="form-control text-center" name="instanceId" id="instances" style="margin: 0 auto">
             @for (var i = 0; i <= totalcount - 1; i++)
             {
                 foreach (var instances in Model.instances.Reservations[i].Instances)
                 {
                     <option>@instances.InstanceId</option>
                 }
             }
             </select>
             <label for="type">Volume Id:</label>
             <select class="form-control text-center" name="volumeId" id="volumeId" style="margin: 0 auto">
             @foreach (var volume in @*aboveinstance*@.BlockDeviceMappings)
             {
                 <option>@volume.DeviceName</option>
             }
         </select>
    </div>
    <div class="modal-footer">
         <button type="submit" class="btn btn-danger btn-lg" style="width: 100%;"><span class="glyphicon glyphicon-ok-sign"></span> Detach</button>
    </div>
</form>

是否可以将 instanceId&lt;select&gt; 的值存储在类似于 var 的变量中,以便我可以在第二次选择中循环遍历它?

供参考var instance包含以下数据

对不起,如果这很明显,我是 .net 和 razor 的新手,在使用 aws sdk 时很难找到资源

【问题讨论】:

  • 使用在第一个下拉菜单中选择一个选项发生在客户端,您应该使用 ajax 根据第一个下拉菜单的选择来获取第二个 dropdwown 的数据。检查this post
  • 你想要的是级联下拉列表。参考this DotNetFiddle 的例子。

标签: asp.net-mvc amazon-web-services razor


【解决方案1】:

Razor 在服务器端呈现视图,不知道用户可以进行的任何客户端更改。

即使在页面加载之后发生的任何事情,例如选择更改,都必须通过 javascript 处理,如果使用像 AngularJs 这样的框架会更好,这将使您的生活更轻松。

您的 Javascript 函数将在每次 Select 值更改时调用服务以获取重新填充其他控件所需的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    相关资源
    最近更新 更多