在asp.net razor mvc中如何在div中的if语句中使用所选的下拉项?

时间:2014-10-15 08:41:41

标签: javascript c# asp.net asp.net-mvc razor

此问题不重复。

以上问题,建议重复一致,询问如何在Java和asp.net之间使用相同的变量。

虽然这个问题接受了以前的不可能,而是询问可能采用的其他方法?

在asp.net razor mvc中如何在div中的if语句中使用所选的下拉项?

从下面的代码中可以看出,我创建了一个dropdown并用数据填充。

我希望在div下方使用所选项目。

  • 当用户点击某个项目时,会显示div中包含的内容
  • 然后在if statement
  • 中的div内使用所选字符串项

目前发生的情况是,所选项目无法全局访问,导致您可以在下方看到这些问题。

但正如知情人士告诉我的那样,你不能在javascriptasp.net mvc razor之间使用相同的变量。所以下面的内容不起作用。

如何实现这一目标? (利用if语句中选定的下拉项目,在div内?)

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <div class="display-field" align="left">
        <select name="mydropdown" id="mydropdown" onchange="onChange()">
        @foreach (var lLMMI in lIM)
        {
            <option value="@lLMMI.Key.Product.PCode">
                @locItem.Key.Loc.N (@lLMMI.Key.Loc.Code)
            </option>
        }
        </select>
        <br /><br />
    </div>
}

var itemselected = "";

<div>
    <script>
        function onChange() {
            var item = document.getElementById("mydropdown").value;
            $('#summary').show();
        }
    </script>

    <div id="summary">

        @foreach (var lLMMI in lIM)
        {
            if (@lLMMI.Key.Pro.PCode == itemselected.toString())
            {
                <summary>extra html elements are added etc.</summary>
            }
        }

2 个答案:

答案 0 :(得分:1)

您应该只使用javaScript。更新您的代码如下:

<script>
    var serverCode = "@lLMMI.Key.Pro.PCode"; // get the server value on JS
    function onChange() {
        var localCode = $("#mydropdown").val();
        if(localCode == serverCode)
           $("#extrasummary").show();

        $('#summary').show();
    }
</script>

<div id="summary">
    <div id="extrasummary" style="display:none">extra html elements are added etc.</div>
    ....
</div>

答案 1 :(得分:1)

处理下拉列表的更改事件并进行ajax调用以返回可以使用jquery .load(添加到DOM的部分视图。请注意,在视图中移除@foreach,以便您拥有

<div id="summary"></div>

这是显示返回的html的地方

脚本

$('#mydropdown').change(function() {
  var selectedID = $(this).val();
  var url = '@Url.Action("Details", "YourController")';
  $('#summary').load(url, { ID: selectedID });
});

控制器

public ActionResult Details(int ID)
{
  var model = // Get the details based on the selected ID
  return PartialView("Details", model);
}

另请注意,请从onchange="onChange()中删除<select>。我还建议您学习使用@Html.DropDownListFor()生成<select>控件