我试图将我的javascript上的下拉列表的值发送到同一视图中的变量,purpouse是我想使用所选选项的值在另一个下拉选项中生成if语句而我不知道这样做的其他任何方式
这是我的JavaScript
$('#sel0').on('change', function () {
dataTable.columns('.fechas').search(this.value).draw();
date = $(this).val();
});

这是我的观点中的变量:
@{
var Date = "";
}
这是我的下拉列表,我想采用所选的值:
<select id="sel0">
<option value="">Todos</option>
@foreach (var item in Model.Select(l => l.Fecha).Distinct())
{
<option value="@lines">@lines</option>
}
</select>
&#13;
我希望能够根据我从下拉列表选择值中获取的日期输入我的列表的总和值,例如:我的下拉列表中的用户图片1日期我应该能够该值并在我的列表的foreach语句中进行求和,并使用如下结果创建输入:
@foreach (var item in Model.Where(x => x.Date == this.Date)//date is the value i took from the user select option
.Select(x =>
{
Rid = x.Rid,
Total = x.Total
})
.GroupBy(l => l.Rid) //and then grouping
.Select(z => new
{
Turno = z.Key,
Total = Decimal.Round(z.Sum(l => l.Total), 0)
}))
{
<input value="@item)" />
}
任何帮助将不胜感激我不知道其他任何方式这样做
答案 0 :(得分:0)
在浏览器中呈现视图后执行服务器代码的方式是:
查找您需要的选项示例。
答案 1 :(得分:0)
剃刀视图中的C#代码在服务器上执行并生成标记,并将返回浏览器。关于select元素更改事件的客户端js代码稍后在客户端发生。您选择的选项中的值不能用于再次执行剃刀中的某些代码。
您有2个选项。
使用所选选项的查询字符串值重新加载页面
当用户选择日期时,重新加载页面并将所选项目作为查询字符串传递。这意味着您需要更新当前的GET操作方法以接受此参数值,然后您将使用此值来执行过滤。
public ActionResult Index(DateTime? date)
{
YourViewModel vm = new ViewModel();
if(date!=null)
{
//Do your filtering based on the date.Value.
}
return View(vm);
}
当用户更改下拉列表时,请使用选择选项值重新加载页面;
$('#sel0').on('change', function () {
window.location.href="@Url.Action("Index","Home")?date="+$(this).val();
});
<强>的Ajax 强>
您可以对执行过滤器的服务器进行ajax调用,然后返回部分视图并将其注入DOM
$('#sel0').on('change', function () {
$("#InputContainer").load("@Url.Action("GetDynamicInputs","Home")?date="+$(this).val());
});
现在请确保在您的主页面中有一个容器div(我们将加载动态输入数量),ID为InputContainer
并有一个动作方法接受日期并根据传递的日期值使用过滤器返回部分视图
public ActionResult GetDynamicInputs(DateTime date)
{
//use the date to determine the markup you want return from your partial view
return PartialView();
}