我在 reazor View .cshtml 中有以下模型绑定(bind)
@Html.TextBoxFor(m => m.cDate,
new{
@id = "textd",
@type = "text"
}
)
我想在绑定(bind)之前调用 JavaScript 函数,如下所示
@Html.TextBoxFor(m => updatedateFormat(m.cDate),
new{
@id = "textd",
@type = "text"
}
)
updatedateFormat是一个JavaScript函数。
我确实有很多选择只与 C# 相关,但我很好奇我们是否可以将 javascript 函数与模型绑定(bind)一起使用。
我尝试过如下
@{
string ccDate= @Convert.ToString("updatedateFormat(@Model.cDate)");
}
@Html.TextBoxFor(m => ccDate,
new
但不工作
请指教。 谢谢
最佳答案
由于无法触发 Javascript
函数,因此当呈现 input 元素或任何其他 html
元素时,您可以使用 document.ready
事件来实现你想要的:
@Html.TextBoxFor(m =>m.cDate,
new{
@id = "textd",
@type = "text",
}
)
当文档准备好时:
$(document).ready(function () {
var ccDate= document.getElementById('textd');
updatedateFormat(ccDate);
})
或者您可以添加自定义属性,例如 data-onload
来模拟加载事件:
@Html.TextBoxFor(m => m.cDate,
new{
@id = "textd",
@type = "text",
data_onload="updatedateFormat('@Model.cDate')"
}
)
当文档准备好时:
$(document).ready(function () {
$('[data-onload]').each(function(){
eval($(this).data('onload'));
});
})
如果您只想格式化属性的值,可以使用 HTML 帮助程序中的 ToString()
函数来实现:
@Html.TextBoxFor(m =>m.cDate,
new{
@id = "textd",
@type = "text",
@Value = Model.cDate.ToString("yyyy/MM/dd")
}
)
关于javascript - Razor View 模型绑定(bind)使用javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60293213/