bambi
bambi

Reputation: 1179

Sending razor variable as function parameter on button click

I read many posts about sending razor variables to javascript as funtion parameters, but nothing worked for me.

Here is my razor view:

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();

When I debug javascript function BtnCancelRequest I see that I get just string "@uniqueIdFirst".

Upvotes: 0

Views: 969

Answers (2)

Adrian Tarnowski
Adrian Tarnowski

Reputation: 396

If you use external JS files, better way to create:

@{
    string uniqueIdFirst = Model.Requests.FirstOrDefault().UniqueId;
}

saveSett.ClientSideEvents.Click = "function(s, e) {BtnCancelRequest('" + uniqueIdFirst + "'); }";

Upvotes: 0

Ehsan Sajjad
Ehsan Sajjad

Reputation: 62488

You have to use a js variable for that, try something like this:

<script type="text/javascript">
var uniqueIdFirst = '@Model.Requests.FirstOrDefault().UniqueId';
</script>

and in event :

saveSett.ClientSideEvents.Click = "function(s, e) { BtnCancelRequest(uniqueIdFirst); }";

Upvotes: 2

Related Questions