首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有Html属性的MVC 5部分视图

具有Html属性的MVC 5部分视图
EN

Stack Overflow用户
提问于 2018-05-31 17:18:02
回答 3查看 1.9K关注 0票数 0

我在MVC5的视图中有一个局部视图。这个局部视图在主视图的不同部分呈现一个Markdown编辑器。这是部分视图中的Markdown编辑器代码。

代码语言:javascript
复制
<div id="field comments">
</div>    
var editor = new tui.Editor({
el: document.querySelector('#field comments')})

我在主视图中将此部分称为

代码语言:javascript
复制
@Html.Partial("_MarkdownEditor") 

但问题是,我想通过向"id“attribute.Some传递不同的参数来在不同的部分中使用这个部分视图,就像这样,

代码语言:javascript
复制
@Html.Partial("_MarkdownEditor", new { @id = "executive comments" }) 

因此,这将创建一个新的Markdown编辑器实例,id = "executive“和querySelector(#executive )。

代码语言:javascript
复制
<div id="executive comments">
</div>    
var editor = new tui.Editor({
el: document.querySelector('#executive comments')})

动态地,我需要通过在局部视图中传递参数来设置'id‘属性和querySelector属性。我是MVC的新手!请指教..

EN

回答 3

Stack Overflow用户

发布于 2018-05-31 17:26:45

如果我没记错,我相信你可以这样做:

视图模型主页

代码语言:javascript
复制
public class mainviewmodel
{

    public partialViewModel {get;set}
}

视图模型部分

代码语言:javascript
复制
public class partialviewmodel
    {

        public id {get;set}
public classval {get;set;}


    }

然后在主页中调用partial,并将其提供给partial模型

如下所示:

代码语言:javascript
复制
@Html.RenderPartial("partialpage", Model.partialviewmodel);

然后,在部分页面中,您可以根据需要添加视图模型中的html属性。

票数 0
EN

Stack Overflow用户

发布于 2018-05-31 17:27:36

您可以将匿名对象作为模型传递给部分:

代码语言:javascript
复制
@Html.Partial("_MarkdownEditor", new { id = "executive-comments" })

或者使用ViewBag/ViewData

代码语言:javascript
复制
@{
    ViewBag.MarkDownEditorSectionId = "executive-comments"
}
@Html.Partial("_MarkdownEditor")

并在分部中使用它。如下所示:

代码语言:javascript
复制
<div id="@Model.id">
</div>    
var editor = new tui.Editor({
el: document.querySelector('#@Model.id')})
票数 0
EN

Stack Overflow用户

发布于 2018-05-31 17:41:32

你需要根据参数动态呈现你的局部视图。在这种情况下,首先需要在控制器中编写一个操作方法来返回部分视图

代码语言:javascript
复制
 public IActionResult MarkdownEditorView(string keyId)
    {            
        return PartialView(MarkdownEditor, new { id= keyId });
    } 

然后,在javascript/jquery函数中,您可以动态呈现

代码语言:javascript
复制
  //div container
  var container = $("#editSection");
  $.get("/controllerName/MarkdownEditorView/",
        {
            keyId: "editSection"
        },
        function (data) {
            indicatorContainer.html(data);
        }
      );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档