0
如何創建選項值來自控制器的下拉菜單。 控制器將從數據庫表的任何列值中獲取它。如何在mvc中創建動態下拉菜單
例如,如果該下拉列表用於選擇國家,並且我在我的數據庫表的國家/地區列中有3個國家/地區,那麼在下拉列表中應顯示3個國家/地區。如果我在國家表中增加一個價值,那也應該在下拉菜單中。
我是MVC的新手,發現有點困難。我正在使用mvc5。
注:因爲我已經一個模型視圖裏面refered,我不能添加模型此下拉
如何創建選項值來自控制器的下拉菜單。 控制器將從數據庫表的任何列值中獲取它。如何在mvc中創建動態下拉菜單
例如,如果該下拉列表用於選擇國家,並且我在我的數據庫表的國家/地區列中有3個國家/地區,那麼在下拉列表中應顯示3個國家/地區。如果我在國家表中增加一個價值,那也應該在下拉菜單中。
我是MVC的新手,發現有點困難。我正在使用mvc5。
注:因爲我已經一個模型視圖裏面refered,我不能添加模型此下拉
我也做了同樣在自己的網站。這就是我要做的事:
首先,創建一個控制器動作返回JSON值:
public ActionResult GetCountryNames()
{
List<string> CountryNames = new List<string>();
CountryNames = context.GetCountries(); // your EF context to get countrynames from database
return Json(CountryNames.ToArray());
}
然後在您的視圖中添加此HTML標記:
<select id="countrylist" onchange="DoSomething();"></select>
這是你的下拉列表。它具有在「onchange」事件中聲明的javascript函數,如果您想在值更改時執行某些操作。
最後,你需要添加你的JavaScript函數,該函數調用Ajax控制器的動作,得到的值,並將其設置爲您的下拉列表:
function GetCountryList() {
var serviceURL = '/Home/GetCountryNames';
$.ajax({
type: "post",
dataType: "json",
url: serviceURL,
success: successFunc,
async: false,
error: errorFunc
});
function successFunc(data, status) {
var countrylist = $('#countrylist');
countrylist.empty();
for (var i = 0; i < data.length; i++) {
var $option = $("<option>", { id: "option" + i });
$option.append(data[i]);
countrylist.append($option);
}
}
function errorFunc(data, status) {
alert('error');
}
}
當你的文件已經準備好,運行功能GetCountryList( )。 可能最簡單的就是用jQuery來做。就像這樣:
<script type="text/javascript">
$(document).ready(function() {
GetCountryList();
});
</script>
建議你去到現場MVC和工作,通過一些基本的教程 –
一個簡單的谷歌搜索給了我一些非常好的教程 - http://www.asp.net/mvc/overview/older-版本/工作與最下拉列表框和-的jQuery /使用最下拉列表輔助與 - ASPNET-MVC – ramiramilu