我有DropDownList有两个项目。当我选择第二个时,它会闪烁,然后立即返回第一个。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