Похоже, это причина появления диалоговых окон модели для регистрации / входа:
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink", data_dialog_title = "Registration" })</li>
<li>@Html.ActionLink("Log on", "LogOn", "Account", routeValues: null, htmlAttributes: new { id = "logonLink", data_dialog_title = "Identification" })</li>
Когда я повторно использую эти ссылки и слегка изменяю их в соответствии с моими потребностями в отображении диалогового окна создания представления, я всегда встраиваю / показываю свою разметку на веб-странице, но не в диалоге.
Это мой код, который я немного изменил:
<p>
@Html.ActionLink("Create News", "Create", "News", routeValues: null, htmlAttributes: new { id = "createLink", data_dialog_title = "Create new News" })
</p>
и это оригинальный код в AccountController:
Чего я не понимаю, так это откуда берется «контент»? В моем действии Создать для моего NewsController я использую тот же код, но содержимое всегда равно нулю, и даже когда я напрямую возвращаю
PartialView () по-прежнему не отображается диалоговое окно, вместо этого на веб-странице отображается разметка?
public ActionResult Create()
{
string actionName = ControllerContext.RouteData.GetRequiredString("action");
if (Request.QueryString["content"] != null)
{
ViewBag.FormAction = "Json" + actionName;
return PartialView();
}
else
{
ViewBag.FormAction = actionName;
return View();
}
}
ПРОСМОТР : Index.cshtml
@model IEnumerable<TBM.WEB.Models.News>
<p>
@Html.ActionLink("Create News", "Create", "News", routeValues: null, htmlAttributes: new { id = "createLink", data_dialog_title = "Create new News" })
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.PublishDate)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.PublishDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
</table>
ЧАСТИЧНЫЙ ВИД: Create.cshtml
@model TBM.WEB.Models.News
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>News</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.PublishDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.PublishDate)
@Html.ValidationMessageFor(model => model.PublishDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>