Controller:
namespace AdminPortal.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public PartialViewResult ServersTab(AdminPortalModel model)
{
return PartialView("~/Views/Home/ServersTab.cshtml", model.Servers);
}
public PartialViewResult _ServerNew()
{
return PartialView("~/Views/Home/_ServerNew.cshtml");
}
}
}
Ansicht zu laden:
@using AdminPortal.CustomHelpers;
@model AdminPortal.Models.AdminPortalModel;
Dieses 'div'-Element verwendet 'overflow:scroll', um Scrollbalken zu erstellen, wann immer der Inhalt des 'div' zu groß wird.
View, die das Laden durchführt:
@using AdminPortal.CustomHelpers;
@model IEnumerable
...
@Ajax.ImageActionLink("../../Images/edit_grey.png", "Bearbeiten ==>", "_ServerEdit", "",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "NewEditSubview"
},
new
{
id = "EditButton"
})
Benutzerdefinierter Ajax Helper:
public static IHtmlString ImageActionLink(this AjaxHelper helper, string imageUrl, string altText, string actionName, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes = null)
{
var builder = new TagBuilder("img");
builder.MergeAttribute("src", imageUrl);
builder.MergeAttribute("alt", altText);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
var link = helper.ActionLink("[replaceme]", actionName, routeValues, ajaxOptions).ToHtmlString();
return MvcHtmlString.Create(link.Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing)));
}
Im Grunde genommen, wenn meine "View zu laden" @model AdminPortal.Models.AdminPortalModel; enthält, wird sie nicht geladen, aber wenn ich diese Zeile entferne, wird sie geladen. Ich benötige dieses Modal, um es in meiner Ansicht zu verwenden und dem Benutzer einige Informationen anzuzeigen. Ich bin mir nicht sicher, warum das Festlegen der Ansicht als stark typisiert dazu führt, dass die Ansicht nicht geladen wird. Irgendwelche Ratschläge?
EDIT:
Um näher auf "wird nicht geladen" einzugehen: