この質問はまったくナンセンスかもしれませんが、私は MVC と Razor の初心者です。
これが私がやろうとしていることです:
- モデルを使用してすべての値を取得する単純なテーブル「製品」があります。products テーブルには、フィールド Id、Name、Price、および StartDate があります。
- コントローラーからビューにリストとしてデータを渡しています
- ビューには、製品の名前を入力する AutoComplete フィールド (KendoUI) があります。
- オートコンプリートの変更イベントのイベントハンドラーで、オートコンプリートのテキストボックスに入力した商品の「価格」を取得したい
以下は、製品のコードです。
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 中に) 1 回レンダリングされるため、Razor でモデルを動的にフィルター処理することはできません (ただし、ジャバスクリプト)?はいの場合、それを行う正しい方法は何ですか?
前もって感謝します
レフテリス