私はRazorviewとEntity Frameworkを使用していますが、以下を達成しようとしています:カラム名とテキストボックスのリストを持つドロップダウン(id = ColumnName) id = SearchValue)テーブルから値を検索します。ボタンをクリックすると、列名が「ColumnName」で、値が「SearchValue」であるレコードがデータベースから取得しようとしています。私は404リソースが見つかりませんボタンのクリックでエラーが見つかりません。私はどこに間違っているのか分からない。次のように私のコードは次のとおりです。.Net Mvc RazorView&Entity Framework:コントローラが見つかりません
HTML:
<select id='mySelector' name="ColumnName">
<option value="">Please Select</option>
<option value='Country'>Country</option>
<option value='Title'>Title</option>
<option value='State'>State</option>
</select>
<input type="text" id="cs" name="SearchValue">
<input type="button" value="Search" onclick="location.href='@Url.Action("FilterByColumn", "CountryController")?SearchValue=' + document.getElementById('cs').value + '&ColumnName=' +document.getElementById('mySelector').value" />
<table id='myTable'>
// values
</table>
CountryController:
public ActionResult FilterByColumn(String ColumnName, String SearchValue)
{
if (!String.IsNullOrEmpty(SearchValue))
{
List<Country> result = new List<Country>();
result = db.Countries.ToList();
result = db.Countries.Where(ColumnName + ".Contains" + "(\"" + SearchValue.ToLower() + "\")").ToList();
return View(result);
}
return RedirectToAction("Index");
}
注:私はこのコントローラで作成、編集などの他の方法を持っています。 はまた、404エラーがスローレンダリングされたURLは次のとおりです。 /CountryController/FilterByColumn SearchValue =サンプル=タイトル& ColumnNameに
の両方で同じ順序でパラメータを与えます( "FilterByColumn"、 "Country") ' –
私のコントローラはCountryController.csと呼ばれ、レンダリングされたURLは正しいようです:/ CountryController/FilterByColumn – user7221204
いいえ、それはありません!!あなたのURLは '/ Country/FilterByColumn'でなければなりません(前のコメントを読んでください) –