Синтаксис бритвы, код не выполняется в AjaxOptions OnComplete - PullRequest
0 голосов
/ 12 марта 2012

У меня есть такой код MVC и я хочу передать значение модели @conversionModel.SourceFileName К сожалению, этот код на самом деле не выполняется, какой правильный синтаксис Razor будет в моем случае?

@Ajax.ActionLink("Remove file", "RemoveFile", "Converter", 
    new { id = @conversionModel.ProcessId }, 
    new AjaxOptions { 
    OnComplete = "RemoveFile(@conversionModel.SourceFileName);" 
    }) 

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

Строка, которую вы передаете "OnComplete", не обрабатывается механизмом Razor, это просто простая строка javascript, выполняемая по завершении вызова ajax.

@Ajax.ActionLink("Remove file", "RemoveFile", "Converter", 
    new { id = @conversionModel.ProcessId }, 
    new AjaxOptions { 
       OnComplete = string.Format("RemoveFile({0})", Json.Encode(conversionModel.SourceFileName))
    }) 

Обновление: вместо простого цитирования строки ее следует кодировать с помощью Json.Encode, как отмечает Дарин.

0 голосов
/ 12 марта 2012
@Ajax.ActionLink(
    "Remove file", 
    "RemoveFile", 
    "Converter", 
    new { 
        id = conversionModel.ProcessId 
    }, 
    new AjaxOptions { 
        OnComplete = string.Format(
            "RemoveFile({0})", 
            Json.Encode(conversionModel.SourceFileName)
        ) 
    }
) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...