我有我在我看來調用像這樣一個文本框:更新上Html.TextBoxFor()onchange事件模型值沒有提交
@Html.TextBoxFor(Function(m) m.ActivityIDReturn)
我想什麼,能夠做的就是當一個值插入此文本框我希望它更新模型,而不必擊中任何類型的提交按鈕。通過此文本框的值在視圖中填充了幾個元素。
所以理想的文本框會看起來是這樣的:
@Html.TextBoxFor(Function(m) m.ActivityIDReturn, new with {Key .onchange=UpdateModel()})
或
@Html.TextBoxFor(Function(m) m.ActivityIDReturn, new with {Key .onchange= RETLog(ActivityIDReturn:=ActivityIDReturn)})
RETLog()是創建在firstplace視圖功能。
到目前爲止,我已經能夠做到這一點的唯一方法是:
@Html.TextBoxFor(Function(m) m.ActivityIDReturn, New With {Key .onchange = "javascript:submit()"})
但我只能想象什麼可怕的副作用可能來自這種事情。
編輯:究竟是什麼,我想在這裏完成
在我的模型我有這樣的:
Public Property PS As RecordsTaskView
Get
Return GlobalVar.db.PS.RecordsTaskViews.Find(ActivityIDReturn)
End Get
Set(ByVal value As RecordsTaskView)
value = GlobalVar.db.PS.RecordsTaskViews.Find(ActivityIDReturn)
End Set
End Property
在我看來,我有這樣的:
@Html.LabelFor(Function(m) m.ActivityIDReturn)
@Html.TextBoxFor(Function(m) m.ActivityIDReturn, New With {Key .onchange="javascript:submit()"})
@Html.DisplayFor(Function(m) m.PS.RefActionID)
@Html.DisplayFor(Function(m) m.PS.QutDesc)
@Html.DisplayFor(Function(m) m.PS.TaskDesc)
@Html.DisplayFor(Function(m) m.PS.CltCode)
@Html.DisplayFor(Function(m) m.PS.CltDesc)
@Html.DisplayFor(Function(m) m.PS.BenIDin)
基本上所有這些DisplayFor的值由這個文本框的值填充。我希望當用戶在文本框中輸入一個值時,用戶不必刷新頁面,或者點擊回車或點擊任何按鈕,就可以填充這些DisplayFor值。
這是我在它的全部代碼視圖:https://gist.github.com/aaronmallen/7042328
我想你可能對MVC的工作原理以及客戶端和服務器之間的分離有一個根本性的誤解。一旦視圖被呈現併發送到客戶端,它基本上是用服務器端模型完成的。 – jmoerdyk
@jmoerdyk我明白MVC是如何工作的。基本上我試圖從視圖中獲取表單以回發到控制器,而不實際將所有內容提交給模型。 – aaronmallen
這樣做使用'Ajax.BeginForm()'.... – Olrac