此问题不重复。
以上问题,建议重复一致,询问如何在Java和asp.net之间使用相同的变量。
虽然这个问题接受了以前的不可能,而是询问可能采用的其他方法?
在asp.net razor mvc中如何在div中的if语句中使用所选的下拉项?
从下面的代码中可以看出,我创建了一个dropdown
并用数据填充。
我希望在div
下方使用所选项目。
div
中包含的内容if statement
div
内使用所选字符串项
目前发生的情况是,所选项目无法全局访问,导致您可以在下方看到这些问题。
但正如知情人士告诉我的那样,你不能在javascript
和asp.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>
}
}
答案 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>
控件