You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC 5中如何给Partial View传参动态设置Markdown编辑器ID

解决MVC 5局部视图动态设置Markdown编辑器ID的问题

没问题,这在MVC里其实很容易实现,咱们一步步来搞定:

1. 修改局部视图接收参数

首先,你的局部视图_MarkdownEditor.cshtml需要能接收你传入的ID参数。这里给你两种方案,一种适合快速上手,一种更规范健壮:

方案一:用动态模型快速实现

在局部视图的最顶部添加一行,声明接收动态参数:

@model dynamic

然后把原来的固定ID替换成动态值,同时加个默认值,防止没传参数时页面出错:

<div id="@(Model?.id ?? "field comments")"></div>

<script>
// 先把ID存到变量里,避免重复写
var editorId = "@(Model?.id ?? "field comments")";
var editor = new tui.Editor({ 
    el: document.querySelector(`#${editorId}`)
});
</script>

方案二:用强类型ViewModel更规范

如果想让代码更严谨,避免拼写错误,可以先创建一个简单的ViewModel类:

// 在项目的Models文件夹下新建MarkdownEditorViewModel.cs
public class MarkdownEditorViewModel
{
    // 设置默认ID,防止没传参数时出错
    public string Id { get; set; } = "field comments";
}

然后在局部视图顶部声明强类型模型:

@model YourProjectName.Models.MarkdownEditorViewModel

接着修改视图内容:

<div id="@Model.Id"></div>

<script>
var editor = new tui.Editor({ 
    el: document.querySelector(`#@Model.Id`)
});
</script>

2. 在主视图中传递参数调用局部视图

两种方案对应的主视图调用方式都很简单:

对应动态模型的调用:

@Html.Partial("_MarkdownEditor", new { id = "executive comments" })

对应强类型ViewModel的调用:

@Html.Partial("_MarkdownEditor", new MarkdownEditorViewModel { Id = "executive comments" })

重要提醒

要注意哦!HTML规范里ID属性不能包含空格,虽然浏览器可能勉强识别,但会带来兼容性问题和JS选择器的潜在bug。建议把ID改成下划线、短横线或者驼峰命名,比如:

@Html.Partial("_MarkdownEditor", new { id = "executive_comments" })

这样你的代码会更稳定,也符合标准规范~

内容的提问来源于stack exchange,提问作者Karthik Selvam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:39:32