这个问题可能完全没有意义,但我是MVC和Razor的新手。
以下是我要做的事情:
以下是产品代码:
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime FirstRelease { get; set; }
public decimal Price { get; set; }
}
public class WidgetsDBContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
我的视图代码(部分代码)如下:
<div id="auto">
<p>Start typing</p>
<label for="productAutoComplete">Please select procuct:</label>
@(Html.Kendo().AutoComplete()
.Name("productAutoComplete")
.DataTextField("Name")
.BindTo(Model)
.Filter(FilterType.StartsWith)
.Placeholder("Select the product")
.HighlightFirst(true)
.Suggest(true)
)
<script>
function productAutoComplete_change() {
var gauge = $("#linearGauge").data("kendoLinearGauge");
@foreach (var p in Model) <==== HERE I WANT TO DO THE FILTERING
{
@: gauge.value(@p.Price);
}
}
$("#productAutoComplete").bind("change", productAutoComplete_change);
</script>
</div>
关于验证的关注:如果我很好地理解MVC和Razor的基础知识,那么我认为视图呈现一次(在HTTP GET期间)是正确的,因此我无法在Razor中动态过滤模型(但仅限于Javascript)?如果是,那么正确的方法是什么?
提前谢谢
Lefteris
答案 0 :(得分:0)
我是否认为视图呈现一次(在HTTP期间) GET)因此我无法动态过滤模型 剃刀(但只能用Javascript)?
是的,这是正确的。
如果是,那么正确的方法是什么?
你可以使用AJAX。例如,在productAutoComplete_change
函数中,您可以向控制器操作发送AJAX请求,该操作将执行过滤并返回包含过滤结果的部分视图。
有很多关于在ASP.NET MVC中使用AJAX的教程。例如,使用jQuery,您可以使用$.ajax()
函数。