這是我的問題。MVC:僅從客戶端驗證更新模型的一部分的操作
我有一個由兩個結構組成的模型。
public class MyDoubleStructureModel
{
public MyDoubleStructureModel(CLIENT MyClient, List<PROVIDER> MyProviders);
CLIENT MyClient {get;private set;};
List<PROVIDER> MyProviders {get;private set;} ;
}
這兩個對象在加載頁面的開始時加載。 的「MyProviders」對象填充的RenderPartial:
<div id="dialog">
<% Html.RenderPartial("UCProviders", Model.MyProviders); %>
<%} %>
</div>
在我的客戶端的形式,我有一個下拉列表,應該允許用戶,更新包含在局部視圖中的數據。 它應該更新而不重新加載視圖。
我的想法是調用(通過JQuery爲例)一個函數服務器端,它只會更新我的模型的一部分。
$("#ddlChangeProviders").change(function() {
$.ajax({
type: "POST",
url: "/Client/UpdateListProvider/?provID=" + $("#ddlChangeProviders").val()
});
但我不知道是否有可能更新,只有我的模型的一部分(在這種情況下,「providers」部分)。
任何想法來完成我的代碼?我是否正確?我想只有「服務器端功能‘UpdateListProvider’(顯示在PartialView的供應商的最新名單)丟失...
這是應該是什麼在我的功能UpdateListProvider
public ActionResult UpdateListProvider(int provID)
{
List<PROVIDER> MyProvidersInMyModel = _entities.Providers.Where(c => c.PROV_ID == provID).ToList();
var model = new MyDoubleStructureModel(null, MyProvidersInMyModel)
return View(model);
}
感謝 (問我說明不夠清楚)
謝謝您的回答。你可以詳細說明「var model = //獲取模型更新」嗎? – PetersLast 2011-04-26 14:55:27
因爲您的目標是更新模型。所以當你在action方法中提供provid時,你只需從db等獲取有問題的模型並更新它的provID字段。你也可以在你的ajax請求中傳遞你的模型的唯一標識符,這樣你可以很容易地從db獲取模型對象 – 2011-04-26 15:00:55
好吧,我會以不同的方式提出我之前的問題,這似乎太簡單了,以至於不真實:)) :什麼是行代碼,它可以獲得當前表單使用(和填充)的「當前模型」?該行的'完整'代碼:'var model = //獲取要更新的模型'? – PetersLast 2011-04-26 16:24:27