![](/img/trans.png)
[英]How to use sharepoint:lookupfield control in a custom aspx page
[英]Use model on SharePoint application page .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 %>" />
<% } %>
我似乎无法使用模型中的详细信息(在ID,名称,占位符等的值中)构造html元素。
另外,我不知道该如何将其发布回服务器。
继续下去有什么好处吗? 在这种情况下,是否还有其他控件/方法更适合与aspx一起使用?
您无法生成这样的HTML标记。 甚至数据绑定表达式也无济于事,因为它们绑定ASP.NET控件的属性值,而不绑定页面中的纯HTML输出。
您应该在“代码背后”中生成标记,如下所示:
页面标记:
<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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.