我有一个带有Ajax.ActionLink的MVC视图。CSS未应用于jQuery UI对话框
this.Ajax.ActionLink("Create Offender", "Create", "ReportOffender",
null, new AjaxOptions()
{
HttpMethod = "GET", UpdateTargetId = "dialog",
OnBegin = "function() { $('#dialog').dialog('open'); }"
},
new Dictionary<string, object>() { { "class", "optionlink" } })
这调用一个名为“创建”的动作,它返回一个局部视图,然后将其放在div /对话框中。这个局部视图的内容是一个表格,一些行/列和文本框,每个文本框都有一个CSS类分配给它们。
问题是,当显示对话框,内部呈现部分视图时,CSS类将被忽略并且不呈现。
任何想法为什么会发生这种情况?
感谢
迈克尔
PS这是从创建GET操作返回的局部视图(见上文Ajax.ActionLink)...
<% using(this.Ajax.BeginForm("Create", "ReportOffender", null, new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "dialog" })) { %>
<% this.Html.RenderPartial("~/Views/IncidentReporting/Report/Offender/DataEntryUserControl.ascx", this.Model); %>
<% } %>
一旦用户完成下面的代码片段,创建POST方法被调用,响应被放置在同一个对话框中。这个回应可能是“你有错误”或“保存成功”的消息。我在这里使用另一个RenderParital,因为我也有一个类似的使用相同表单的Edit版本。
下面是DataEntryUserControl.ascx内的HTML片段,并表示用户必须填写表格...
<table class="entity-form">
<tr>
<td class="entity-form-validation-summary" colspan="2">
<%= this.Html.ValidationSummary() %>
</td>
</tr>
<!-- FIRST NAME -->
<tr>
<td class="entity-form-caption"><label for="Entity.FirstName">First Name</label></td>
<td>
<%= this.Html.TextBox("Entity.FirstName", this.Model.Entity.FirstName, 50, 50, this.Page.User.IsInRoles(SecurityGroups.Translators), null) %>
<%= this.Html.ValidationMessage("Entity.FirstName") %>
</td>
</tr>
<!-- LAST NAME -->
<tr>
<td class="entity-form-caption"><label for="Entity.LastName">Last Name</label></td>
<td>
<%= this.Html.TextBox("Entity.LastName", this.Model.Entity.LastName, 50, 50, this.Page.User.IsInRoles(SecurityGroups.Translators), null)%>
<%= this.Html.ValidationMessage("Entity.LastName")%>
</td>
</tr>
正如你可以看到有什么特别的。具有额外参数的TextBox方法是我为将MaxLength,Size等添加到文本框控件而创建的扩展方法。正是在这里,我遇到了CSS的问题。我使用相同的CSS类和表单结构,在“正常”视图中的其他地方使用相同的CSS类并正确渲染。
也许更新你的问题,并添加一个HTML和应该影响它的CSS的片段?从你给出的描述中很难说清楚。 – calumbrodie 2010-04-07 08:15:13