2017-08-28 24 views
1

Razorを使用すると、ASP.NETコアMVCタグヘルパの引数を、対応する属性宣言内のインラインC#式として記述できます。ただし、HTML属性は引用符で区切られているため、そのような式自体に引用符を含める必要があります。ここでASP.NETの文字列リテラルコアMVCタグヘルパー引数

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoringからのサンプルです:

<website-information info="new WebsiteContext { 
    Version = new Version(1, 3), 
    CopyrightYear = 1638, 
    Approved = true, 
    TagsToShow = 131 }" /> 

WebsiteContext特性の一つは、文字列リテラルを取るとしたら、これはどのようなものが見えるでしょうか?

答えて

1

私のオリジナルの答えはここに、欠陥だったので、私はあなたのようなコードでテストされていることに動作しますアプローチです:

COPYRIGHTYEARはあなたが何ができるかの文字列の場合、外側の引用符のための単一引用符を使用し、そのような文字列を二重引用符を使用します。

<website-information info='new WebsiteContext { 
           Version = new Version(1, 3), 
           CopyrightYear = "1638", 
           Approved = true, 
           TagsToShow = 131 }' /> 
+0

あなたのアプローチとASP.NET Core MVC 1.1では、私はこれを得ています:この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。 [...]無効な表現用語 '' [...] CopyrightYear = \ "1638 \"、[...]予期しない文字 '\' –

+0

あなたのWebsiteContextオブジェクトのCopyrightYearが現在int型である可能性があります。それを文字列型に変更して参照してください。または、文字列型の他のプロパティでエスケープテクニックを試してみてください。 –

+0

これはそうではありませんが、私はもちろん型を文字列に変更しました(そして別の文字列プロパティでも試しました)。 ?もしあれば、どんなASP.NET Coreバージョンを使っているのですか?これは2.0の機能ですか? –

0

をロンCの答えで説明したものに代わる回避策として、一つはまた、結果を変数に格納し、別のカミソリのコードブロックにWebSiteContext建設コードを入れることができます。

@{ 
var context = new WebsiteContext { 
     Version = new Version(1, 3), 
     CopyrightYear = "1638", 
     Approved = true, 
     TagsToShow = 131 }; 
} 

<website-information info="@context" /> 
関連する問題