我有一個帶有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