在按钮单击时将razor变量作为函数参数发送

时间:2015-08-13 07:04:28

标签: javascript asp.net-mvc razor devexpress-mvc

我读过很多关于将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"。

2 个答案:

答案 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 + "'); }";