这个问题可能完全没有意义,但我是 MVC 和 Razor 的新手。
这是我正在尝试做的事情:
- 我有一个简单的表“产品”,我使用我的模型从中检索所有值。products 表有一个字段 Id、Name、Price 和 StartDate。
- 我将数据从控制器传递到视图作为列表
- 在视图中,我有一个自动完成字段 (KendoUI),我在其中输入产品名称
- 在 AutoCoplete 更改事件的事件处理程序中,我想检索已在 AutoComplete 文本框中键入的产品的“价格”
下面是产品的代码:
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)?如果是,那么正确的方法是什么?
先感谢您
左撇子