2016-06-17 36 views
1
ViewBag.cliente_id = new SelectList(db.cliente.Where(c => c.status_ativacao == 1), "id", "nome", manutencao.cliente_id); 

它仍然返回所有客戶端。 我需要返回誰列'status_ativacao'=值1. 我確定在這裏做或我需要在下拉列表中執行此操作嗎?(Custom ViewBag with Where)。簡單的線,但我不能讓它工作

查看:

<div class="form-group"> 
<label class="col-sm-2 control-label" for="cliente_id">Cliente</label> 
<div class="col-md-6"> 
    @Html.DropDownList("cliente_id", (SelectList)ViewBag.Values, new { onchange = "this.form.submit();" }) 
    @Html.ValidationMessageFor(model => model.cliente_id) 
<!-- <input type="submit" value="Atualizar Cliente" class="btn btn-default"/> --> 
</div> 

+1

'.Where() '你顯示的子句將會正常工作,並且只返回'cliente',其中'status_ativacao'的值是'1'(但是在'ViewBag'中放置一個'SelectList'是不好的做法,並且沒有意義添加'@Html .ValidationMessageFor()'因爲你的實現永遠不會得到任何驗證,你的用戶不能選擇第一項) –

回答

1

你必須是查詢轉換成榜第一,這樣的:

ViewBag.cliente_id = new SelectList(db.cliente.Where(c => c.status_ativacao == 1).ToList(), "id", "nome", manutencao.cliente_id); 

還可以更改Html.DropDownList在您看來,像這個:

@Html.DropDownList("cliente_id", (SelectList)ViewBag.cliente_id, new { onchange = "this.form.submit();" }) 
+0

不幸的是它不起作用 –

+0

很抱歉聽到這個消息。我假設你正在設置這個動作,視圖是怎樣的? –

+0

我更新了該視圖的帖子。真的很感謝你 –

相關問題