ビューで次のように呼び出すテキストボックスがあります。
@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() は、最初にビューを作成する関数です。
これまでのところ、これを達成できた唯一の方法は次のとおりです。
@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 はすべて、このテキスト ボックスの値によって入力されます。ユーザーがページを更新したり、Enterキーを押したり、ボタンを押したりすることなく、テキストボックスに値を入力すると、これらの DisplayFor 値が入力されるようにしたいと思います。
これが私のコード全体のビューです: https://gist.github.com/aaronmallen/7042328