私は2つの項目を持つDropDownListを持っています。私が2番目のものを選択すると、それが点滅し、すぐに最初のものに戻ります。DropDownListは常に最初の要素を表示します
@Html.DropDownListFor(m => m.SelectedProduct, new SelectList(Model.Products, "ProductCode", "ProductName",Model.SelectedProduct),new { @class = "form-control" })
マイコンコード。
public ActionResult Index(int id, string productName)
{
var model = new ProductModel
{
Product = ProductService.GetProducts()
};
var view = "Something";
model.SelectedProduct = productName;
if(productName =="another")
view = "another";
return View(view, model);
}
Model.Products
のタイプはです。
public class Product
{
public string ProductName {get;set;}
public string ProductCode {get;set;}
}
私はこのlinkを見ましたが、私は私のコントローラでViewData
を持っていません。だから私を助けてください。
私のクライアント側のコード:
$(document).ready(function() {
$("#SelectedProduct").change(function() {
var selectedValue = $(this).find('option:selected').text();
window.location.href = "@(Url.RouteUrl("MyRoute", new { id = Model.id }))/" + encodeURI(selectedValue);
});
これはASP.NETの問題で、JavaScriptの問題ではありませんか?値を変更した後にページがリロードされるか、またはすべてがクライアント側で行われますか?これが発生した場合、クライアントにはサーバの通信がありますか?<-> – ChrFin
クライアントサイドコードを追加しました。私は 'selectedValue'が正しいと確信しています。 – Bigeyes
あなたのリダイレクトはjsで奇妙に見えます。このリクエストが上記のアクションにルーティングされ、「productName」が期待どおりに入力されていることを確認してください。あなたのルート設定を表示できますか? – Andrei