MVC5アプリケーションにカラーピッカーを表示します。この機能は、手動で入力し、それを使用する各ページに適合させると機能します。明らかに、これは過度に複製されたコードなので、データを生成するUtilsメソッドを作成しました。ここではそのメソッドの定義は次のとおりです。ViewData ["x"]が発生する可能性がありますToStringが機能しません。
public static string GetColorsList()
{
string colorsList = "<option style=\"color:gray\" value=\"null\">select color</option>" +
"<option style=\"color:azure\" value=\"Azure\">Azure</option>" +
"<option style=\"color:blue\" value=\"Blue\">Blue</option>" +
"<option style=\"color:cyan\" value=\"Cyan\">Cyan</option>" +
"<option style=\"color:green\" value=\"Green\">Green</option>" +
"<option style=\"color:magenta\" value=\"Magenta\">Magenta</option>" +
"<option style=\"color:orange\" value=\"Orange\">Orange</option>" +
"<option style=\"color:red\" value=\"Red\">Red</option>" +
"<option style=\"color:violet\" value=\"Violet\">Violet</option>" +
"<option style=\"color:yellow\" value=\"Yellow\">Yellow</option>";
return colorsList;
}
私が代わりにIEnumerableをの文字列を返す理由は、JSメソッドが使用してページに(すなわち、テーブルに新しい行を作成する)新しいデータを追加することです:
を$(#tablename tbody).append(newcontent);
ここで、新しいコンテンツは、挿入するHTMLの文字列です。理想的には、ピッカーの内容を表示するためにHtml.DropDownListを作成することができますが、これは文字列に優しい結果を返しません。
私は何をしたいのですか:viewData ["x"]に入れて、ViewData ["x"]を文字列に変換し、その文字列をnewcontentに属する他のコンテンツと連結します。
のViewData [ "X"]のToString()次の結果が得られます。
<option style="color:gray" value="null">select
color</option><option style="color:azure" value="
Azure">Azure</option><option style=
"color:blue"
value="Blue">Blue</option><option style="
color:cyan" value="Cyan">Cyan</option><
option style="color:green" value="Green">
Green</option><option style="color:magenta" value=
"Magenta">Magenta</option><option style=
"color:orange" value="Orange">Orange</option
><option style="color:red" value="Red">
Red</option><option style="color:violet" value=
"Violet">Violet</option><option style=
"color:yellow" value="Yellow">Yellow</option>);
ここでの回避策を実行することです:
colorpickerContent = colorpickerContent.replace("$lt;", "<");
colorpickerContent = colorpickerContent.replace("$gt;", ">");
colorpickerContent = colorpickerContent.replace(""", "\"");
をすべて適切な文字が存在するようにするため。実行時に、出力は文字列と見なすために必要な引用符で始まらないので、プログラムは構文エラーをスローします。 ViewData ["x"]を実行可能な文字列にする方法に関する提案はありますか?私はJSON.stringify()を試みましたが、同様の結果が見つかりました。
ありがとうございました、それは本当に私が必要としたものです! –