我在使用asp.net mvc 4的这段代码中遇到错误“输入字符串的格式不正确”我知道为什么会出现此错误,因为我正在使用Marca进行搜索过滤器(品牌,我用西班牙语制作),品牌在表中的下拉列表是字符串值,但项目表中它们相关的行是 int 值。搜索结果 http post 尝试使用字符串值来执行此操作,并且我收到错误消息,如果我在 url 中手动键入我想要搜索的品牌的 int id 查询通过。这是我的代码示例,抱歉我的英语不好。
public ActionResult Index(string marcas, string search_query)
{
var MarcaLst = new List<string>();
var MarcaQry = from d in db.Marcas // table Brand
orderby d.Marca1 // string row of the table Brand
select d.Marca1;
MarcaLst.AddRange(MarcaQry.Distinct());
ViewBag.marcas = new SelectList(MarcaLst);
var marca = from m in db.Marcas
select m;
if (!String.IsNullOrEmpty(search_query))
{
descripcion = descripcion.Where(s => s.Descripcion.ToUpper().Contains(search_query.ToUpper()));
}
if (string.IsNullOrEmpty(marcas))
return View(descripcion.ToList());
else
{
int marcasint = Convert.ToInt32(marcas); // I get the error here from a work around to make the page load
return View(descripcion.Where(x => x.MarcaID == marcasint)); //MarcaID is the int value of the Items table for the Brand
}
}
url/articulos?search_query=a&marcas=BSN //错误
url/articulos?search_query=a&marcas=1 //通过