我在MVC5的视图中有一个局部视图。这个局部视图在主视图的不同部分呈现一个Markdown编辑器。这是部分视图中的Markdown编辑器代码。
<div id="field comments">
</div>
var editor = new tui.Editor({
el: document.querySelector('#field comments')})
我在主视图中将此部分称为
@Html.Partial("_MarkdownEditor")
但问题是,我想通过向"id“attribute.Some传递不同的参数来在不同的部分中使用这个部分视图,就像这样,
@Html.Partial("_MarkdownEditor", new { @id = "executive comments" })
因此,这将创建一个新的Markdown编辑器实例,id = "executive“和querySelector(#executive )。
<div id="executive comments">
</div>
var editor = new tui.Editor({
el: document.querySelector('#executive comments')})
动态地,我需要通过在局部视图中传递参数来设置'id‘属性和querySelector属性。我是MVC的新手!请指教..
发布于 2018-05-31 17:26:45
如果我没记错,我相信你可以这样做:
视图模型主页
public class mainviewmodel
{
public partialViewModel {get;set}
}
视图模型部分
public class partialviewmodel
{
public id {get;set}
public classval {get;set;}
}
然后在主页中调用partial,并将其提供给partial模型
如下所示:
@Html.RenderPartial("partialpage", Model.partialviewmodel);
然后,在部分页面中,您可以根据需要添加视图模型中的html属性。
发布于 2018-05-31 17:27:36
您可以将匿名对象作为模型传递给部分:
@Html.Partial("_MarkdownEditor", new { id = "executive-comments" })
或者使用ViewBag/ViewData
@{
ViewBag.MarkDownEditorSectionId = "executive-comments"
}
@Html.Partial("_MarkdownEditor")
并在分部中使用它。如下所示:
<div id="@Model.id">
</div>
var editor = new tui.Editor({
el: document.querySelector('#@Model.id')})
发布于 2018-05-31 17:41:32
你需要根据参数动态呈现你的局部视图。在这种情况下,首先需要在控制器中编写一个操作方法来返回部分视图
public IActionResult MarkdownEditorView(string keyId)
{
return PartialView(MarkdownEditor, new { id= keyId });
}
然后,在javascript/jquery函数中,您可以动态呈现
//div container
var container = $("#editSection");
$.get("/controllerName/MarkdownEditorView/",
{
keyId: "editSection"
},
function (data) {
indicatorContainer.html(data);
}
);
https://stackoverflow.com/questions/50620774
复制相似问题