我读过很多关于将razor变量发送到javascript作为功能参数的帖子,但没有任何对我有用。
这是我的剃刀观点:
string uniqueIdFirst = Model.Requests.FirstOrDefault().UniqueId;
@Html.DevExpress().Button( saveSett =>
{
saveSett.Name = "btnCancelRequest";
saveSett.Text = "Cancel";
saveSett.Width = 63;
saveSett.Height = 28;
saveSett.ControlStyle.CssClass = "button";
saveSett.Styles.EnableDefaultAppearance = false;
saveSett.EnableClientSideAPI = true;
saveSett.ClientSideEvents.Click = "function(s, e) { BtnCancelRequest('@uniqueIdFirst'); }";
} ).GetHtml();
当我调试javascript函数BtnCancelRequest时,我看到我只得到字符串" @ uniqueIdFirst"。
答案 0 :(得分:2)
你必须使用js变量,尝试这样的事情:
<script type="text/javascript">
var uniqueIdFirst = '@Model.Requests.FirstOrDefault().UniqueId';
</script>
并且在事件中:
saveSett.ClientSideEvents.Click = "function(s, e) { BtnCancelRequest(uniqueIdFirst); }";
答案 1 :(得分:0)
如果您使用外部JS文件,更好的创建方式:
@{
string uniqueIdFirst = Model.Requests.FirstOrDefault().UniqueId;
}
saveSett.ClientSideEvents.Click = "function(s, e) {BtnCancelRequest('" + uniqueIdFirst + "'); }";