質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

4886閲覧

Razorでusingする方法

dev3310

総合スコア24

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

1グッド

0クリップ

投稿2019/05/27 05:01

編集2019/05/27 05:08

Razor構文中で、Microsoft.VisualBasic名前空間のStringsモジュールに含まれるStrConvメソッドを使用しようとしています。

参照にMicrosoft.VisualBasicが含まれていることは確認しており、Viewフォルダ配下のweb.configにも参照を追記しました。

config

1<system.web.webPages.razor> 2 <!--省略--> 3  <pages pageBaseType="System.Web.Mvc.WebViewPage"> 4 <namespaces> 5 <add namespace="Microsoft.VisualBasic" /> 6 </namespaces> 7 </pages> 8</system.web.webPages.razor>

しかし、いざ使うとすると

cshtml

1@{ 2 var a = Microsoft.VisualBasic.Strings.StrConv("あいう",VbStrConv.Katakana); 3}

上記コードのStringsがインテリセンスで出てきません。
手打ちで入力すると、
「型または名前空間の名前'Strings'が名前空間’Microsoft.VisualBasic’に存在しません(アセンブリ参照があることを確認してください)。」
とエラーになってしまいます。

Microsoft.VisualBasic以降、インテリセンスで表示されるのは
・Activities(namespace)
・VBCodeProvider(class)
のみです。

.vsファイルを削除したり、クリーンしたり、開き直したりしてみましたが、ダメでした。

なにか解決方法をご存知の方、いらっしゃいましたらご教授願います。

-----情報追加-----

Razor構文中でなければ(cshtmlではなくcsファイル中)普通に
Microsoft.VisualBasic.Strings.StrConv("あいう",VbStrConv.Katakana);
が使えていますし、インテリセンスにもStringsが出てくるので、Razor構文中で使用する上での何かが足りないのではと考えております。

BluOxy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

直接の回答ではなくてすみませんが・・・

自分の環境でも確認してみましたが質問者さんが言われる通りでした。

ググって調べてみましたが、同様な問題に遭遇したケースは以下の記事しか見つかりません。こういうことをする人があまりないのかも。

C# MVC Razor namespace Microsoft.VisualBasic.Financial not resolving
https://stackoverflow.com/questions/17710170/c-sharp-mvc-razor-namespace-microsoft-visualbasic-financial-not-resolving?rq=1

Microsoft の公式文書などの確証がないのですが、自分がいろいろ試した限り cshtml の制約のようで、対処方法は見つからなかったです。

cshtml での対処方法を探すのに時間を費やすより、コントローラー/アクションメソッドで処理する方向に進むのが正解だと思います。

ちなみに vbhtml では期待通りインテリセンスは働きますし、問題はなさそうです。

イメージ説明

【追記】

上の私のレスで、

cshtml での対処方法を探すのに時間を費やすより、コントローラー/アクションメソッドで処理する方向に進むのが正解だと思います。

と書きましたが、その一案を書いておきます。

コントローラーでなくても別途クラスファイルを作っても良いのですが、以下のように Strings.StrConv をラップする形で静的メソッドを定義すれば、

イメージ説明

それを View (cshtml) で以下のように使うことができます。

イメージ説明

投稿2019/05/27 07:04

編集2019/05/28 01:08
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dev3310

2019/05/28 02:36

ありがとうございます。 自分の調査不足でないことがわかり安心はしましたが、やはり出来ないのですね。 この辺の原因についてはまた自分でも調べてみたいと思います。 また、対処方法まで教えていただき、重ねて御礼申し上げます。 最終的な目標は、ひらがな⇒カタカナの後にカタカナを半角にすることだった為、 ご提案いただいたとおり、Strings.StrConvをラップするメソッドを作り、そこに半角変換も盛り込んで、それをcshtmlから呼び出すようにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問