2016-06-14 52 views
2

我正在使用基本上是aspx頁面的應用程序頁面創建反饋調查問卷表單。在SharePoint應用程序頁面上使用模型.aspx

我希望通過儘可能模仿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> 

這給予的我這個問題的文本。現在我試圖構建適當的輸入,但是這<% %>標籤不工作的這一點:

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

我似乎無法得到它的構造利用模型詳細的HTML元素(數值對於身份證,名稱,佔位符等)

此外,我不知道如何去發佈這回到服務器,當我到了那一點。

繼續有什麼價值嗎?在這種情況下使用aspx還有其他控件/方法更合適嗎?

+1

可否請您從信息中刪除個人故事? –

+0

我會嘗試使用asp.net輸入而不是html輸入或使用中繼器。你有沒有考慮爲你的需要建立一個自定義控件? https://msdn.microsoft.com/en-us/library/ee231548.aspx – Nils

回答

0

您不能像這樣生成HTML標記。即使data-binding expressions也無濟於事,因爲它們綁定了ASP.NET控件的屬性值,而不是頁面中的純HTML輸出。

您應該會在"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); 
} 
相關問題