我有一个表GROUP_CONCAT
,其中包含PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?book (group_concat(DISTINCT ?author; separator = ", ") as ?authors) (group_concat(DISTINCT ?publisher; separator = ", ") as ?publishers) (sample(?pages) as ?numPages) (sample(?isbn_tmp) as ?isbn) WHERE {
?book a dbo:Book .
?book dbo:author ?author .
OPTIONAL { ?book dbo:numberOfPages ?pages }
OPTIONAL { ?book dbo:isbn ?isbn_tmp }
OPTIONAL { ?book dbo:publisher ?publisher }
# get the English title
?book rdfs:label ?name.
FILTER(LANGMATCHES(LANG(?name), 'en'))
# get an English description, but not the text
?book rdfs:comment ?text .
FILTER(LANGMATCHES(LANG(?text), 'en'))
# filter for books whose title contains "java"
?name bif:contains '"java"'
}
GROUP BY ?book
列,Medicine
和ID
现在我用表药填充了这个MedicineName
。我希望在调用中包含值price
,@Html.DropDownList
和ID
,或者在jquery中使用它。
目前我只能获得MedicineName
我的控制器:
price
我的观点:
MedicineName
脚本:
public ActionResult Create()
{
ViewBag.ClientID = new SelectList(db.Clients, "ClientID", "Surname");
ViewBag.MedicineID = new SelectList(db.Medicines, "MedicineID", "MedicineName");
return View();
}
答案 0 :(得分:2)
尝试从控制器操作方法发送下拉列表中的格式化数据。您可以使用以下内容:
public ActionResult Create()
{
ViewBag.ClientID = new SelectList(db.Clients, "ClientID", "Surname");
//modified code
var medlist = db.Medicines.AsEnumrable().Select(x => new {Id = x.MedicineID, MedName = (x.Id + " "+ x.MedicineName +" "+ x.Price).ToString()});
ViewBag.MedicineID = new SelectList(medlist, "ID", "MedName");
return View();
}
现在,您可以在下拉菜单中查看药物的ID,名称和价格。您可以根据需要格式化下拉列表。 您可以通过放置适当的字符串函数来提取脚本中的数据。
答案 1 :(得分:1)
您无法使用@Html.DropDownList
,它只允许2个数据值:id和text。
相反,您可以使用@Html.NameFor
和@Html.IdFor
来构建自己的下拉菜单:
<select name="@Html.NameFor(Function(model) model.CityId)"
id="@Html.IdFor(Function(model) model.CityId)">
@For Each medicine In Model.Medicines
@<option value="@medicine.MedicineId"
data-price="@medicine.price">
@medicine.MedicineName
</option>
Next
</select>
答案 2 :(得分:0)
您无法在选择列表的每一行中存储3个值。它只有Id和Text。
您可以做的是onchange调用webapi并使用从选择列表中获取的ID来请求其他数据。