2016-06-14 14 views
2

私は、基本的にaspxページであるアプリケーションページを使用してフィードバックアンケートフォームを作成するためにSharePointで作業しています。SharePointアプリケーションページのモデルを使用します。

可能な限りMVCをエミュレートすることでこれを行いたいと思います。単一行、複数行、単一選択、複数選択を

public List<QuestionViewModel> modelQuestions = new List<QuestionViewModel>(); 

次に、私は例えば(質問の種類に応じて、それぞれの質問と適切な入力を表示する必要があります。私は、コードビハインドで私のモデルを設定しました)。

私が正しく質問を表示し、それを持っている

<fieldset class="what-went-wrong"> 
    <% for (int i = 0; i < modelQuestions.Count; i++) { %> 
     <p> 
      <label for="QuestionText"> 
       <% if (modelQuestions[i].Required) { %> 
       <span class="req-field indicator">*</span> 
       <% } %> 
        <%= modelQuestions[i].QuestionText %> 
       <% if (modelQuestions[i].Required) { %> 
       <span class="req-field right">* Required field</span> 
       <% } %> 
      </label> 
     </p> 
    <% } %> 
</fieldset> 

このギブの私の質問テキスト。値で(私はそれがモデルから詳細を使用してHTML要素を構築するように見えることはできません

<% if(modelQuestions[i].QuestionTypeId == QuestionType.SingleLine) { %> 
    <input id="modelQuestions_<% i %>" name="modelQuestions[<% i %>]" type="text" placeholder="<% modelQuestions[i].Placeholder %>" /> 
<% } %> 

:私は今、適切な入力を構築しようとしているが、これ<% %>タグは、このために働いていませんID、名前、プレースホルダーなど)

また、私はその時点でサーバーにこれをポストする方法についてはわかりません。

継続するとメリットはありますか?この場合、aspxで使用するのに適した他のコントロール/メソッドがありますか?

+1

あなたはポストからの個人的な物語を削除してくださいできますか? –

+0

私は、HTML入力の代わりにasp.net入力を使用しようとするか、リピータで作業します。必要に応じてカスタムコントロールを構築することを検討しましたか? https://msdn.microsoft.com/en-us/library/ee231548.aspx – Nils

答えて

0

このようなHTMLマークアップを生成することはできません。 data-binding expressionsでも、ページ内のプレーンな出力HTMLではなく、ASP.NETコントロールの属性値をバインドするので役立ちません。

あなたはこのように、"code behind"でマークアップを生成する必要があります

ページのマークアップ:

<div id='AnswersPanel'> 
<div> 

ページのコードの後ろに:

protected void PageLoad(...) 
{ 
    AnswersPanel.InnerHtml = ""; 
    AnswersPanel.InnerHtml += string.Format("<input id='modelQuestions_{0}' name='modelQuestions[{0}]' type='text' placeholder='{1}' />", 
               i.ToString(), 
               modelQuestions[i].Placeholder); 
} 
関連する問題