我在剃刀视图.cshtml中具有以下模型绑定
@Html.TextBoxFor(m => m.cDate,
new{
@id = "textd",
@type = "text"
}
)
我想在绑定之前像下面那样调用javascript函数
@Html.TextBoxFor(m => updatedateFormat(m.cDate),
new{
@id = "textd",
@type = "text"
}
)
updatedateFormat是一个JavaScript函数。
我确实有很多只与c#有关的选项,但是我很好奇我们可以在模型绑定中使用javascript函数。
我尝试如下所示
@{
string ccDate= @Convert.ToString("updatedateFormat(@Model.cDate)");
}
@Html.TextBoxFor(m => ccDate,
new
但不起作用
请告知。谢谢
由于无法触发Javascript
函数,因此在呈现输入元素或任何其他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")
}
)