2015-12-07 87 views
-1

這是樣品視圖模型我得到的觀點:ASP.NET MVC數據屬性

public class CollectionOfStuffVM 
{ 
    public string Element { get; set; } 
    public bool IsPicked { get; set; } 
} 

這是要求爲多個項目複選框或下拉列表中,如果它是一個單挑。但是,如果我以自定義的方式繪製這個圖片呢?例如,下面(在一個編輯模板中):

<a href="javascript:void(0);" data-picked="@Model.IsPicked">@Model.Element</a> 

所有的「數據採集」的東西是由JavaScript處理時,單擊某物。 那麼,如何自動綁定這些自定義的「控件」呢?

我想有一些工作需要完成,我只是不確定,在哪裏。我是否需要創建自定義輸入? 我知道這個自動綁定將是可行的輸入,但我有點avoding不得不隱藏輸入被更新的Javascript。

請記住,這只是一個簡單的例子,ViewModel稍微複雜一點,如果必須在Javascript中構建所有內容才能執行Ajax POST,那將會令人沮喪。

+2

我讀過這3次,對於我的生活我無法理解你想要什麼。這不正常嗎?具體來說,它在做什麼,你期望它做什麼?而且,這裏沒有足夠的代碼可以讓我重現你所得到的任何東西。請在MCVE中進行編輯,並清除正在發生的事情以及您想要的內容。 – Becuzz

+1

自動綁定這些自定義「控件;這是什麼意思?你可以更詳細地描述你的預期行爲嗎? – Shyju

+0

如果你想要簡單的綁定,你應該使用'RadioButtonFor'或'CheckBoxFor' hepler。 cliend或CustomModelBinder在服務器端。 –

回答

1

當涉及到MVC時,沒有雙向數據綁定的事情。這是因爲,與WPF應用程序不同,WPF應用程序中的所有應用程序都運行在同一臺計算機上,而Web應用程序與服務器端和客戶端組件是分開的。

如果您希望客戶端設置的數據在服務器上重新設置,您必須將其發佈到服務器。如果您使用標準表單處理該數據,則必須包含某種具有該值的輸入。如果你使用AJAX來做,你會有更多的自由,因爲你不需要一個物理的HTML輸入元素來保存這個值,但是你仍然有責任確保這個值能夠傳遞給你發送給服務器通過AJAX。