は、私は次のようにXSLTを使用してレンダリングされるフォームのXMLテンプレートを持っている:XSLT名前値ペアの辞書を取り込むXMLフォーム入力は
のxml:
<form-template>
<fields>
<field type="text" required="true" label="Subject" class="form-control" name="subject" subtype="text"></field>
<field type="textarea" required="true" label="Description" class="form-control" name="description" subtype="textarea" rows="3"></field>
</fields>
</form-template>
のxsl:
<xsl:template match="/*">
<xsl:for-each select="fields/field">
<xsl:if test="@type='text'">
<label for="{@name}"><xsl:value-of select="@label"/></label>
<input class="form-control" data-val="{@required}" data-val-required="The {@label} field is required." id="{@name}" name="{@name}" type="text" value=""></input>
<span class="field-validation-valid" data-valmsg-for="{@name}" data-valmsg-replace="true"></span>
</xsl:if>
</xsl:for-each>
</xsl:template>
フォームは、カスタムHTMLHelperを使用してレンダリングされます。
@Html.RenderXml(Model.Template, Server.MapPath("~/Content/form.xslt"))
値は、名前/値のペアとして格納されます。名前がフィールドに一致する場合
var values = new Dictionary<string, string> {{"subject", "This is the subject"}, {"description", "This is the description"}};
がどのように私は、XSLにこれらの値を渡し、XMLテンプレート内の各フォームフィールドに対して繰り返すことができます次に、それぞれのフィールドに値を入力します。
私は検索しましたが、どのようにxslファイルに配列型変数を渡すことができません。
辞書をノードセットに変換し、それをargumentlistパラメータとして渡しますか?
他にも提案や回避策がありますか?あなたがXSLTで.NET辞書を表現したい場合は、私は、私はネットMVC
感謝を。私も同様のものを管理しました - 上記の私の答えを参照してください。 – adam78