Jak wyrenderować wartość logiczną do zmiennej JavaScript w pliku cshtml?
Obecnie pokazuje to błąd składni:
<script type="text/javascript" >
var myViewModel = {
isFollowing: @Model.IsFollowing // This is a C# bool
};
</script>
javascript
asp.net-mvc
razor
Nikos
źródło
źródło
Odpowiedzi:
Możesz także spróbować:
a coraz lepszym sposobem jest użycie:
źródło
@Json.Encode(Model.IsFollowing)
to imho najbardziej eleganckie rozwiązanie. Dziękuję Ci!@using System.Web.Helpers
aby uzupełnić kod.Wartość logiczna JSON musi być zapisana małymi literami.
Dlatego spróbuj tego (i upewnij się, że nie ma
//
komentarza w wierszu):Lub (uwaga: musisz użyć przestrzeni nazw
System.Xml
):źródło
Ponieważ wyszukiwanie przyniosło mnie tutaj: w ASP.NET Core
IJsonHelper
nie maEncode()
metody. Zamiast tego użyjSerialize()
. Na przykład:źródło
Dlaczego
True
i nietrue
pytasz ... Dobre pytanie:dlaczego Boolean.ToString wyświetla „True”, a nie „true”
źródło
@Model.IsFollowing
rzeczywiście prawidłową składnią JS? A może opiera się na fakcie, że będzie to spowodowane faktem, że jest to wartość logiczna?'@(Model.IsFollowing)'
Oto kolejna opcja do rozważenia, używając !! konwersja na wartość logiczną.
Spowoduje to wygenerowanie następującego po stronie klienta, przy czym 1 zostanie przekonwertowany na prawdę, a 0 na fałsz.
źródło
Rozwiązaniem, które jest łatwiejsze do odczytania, byłoby zrobienie tego:
źródło