c# - 使用 MVC 动态添加到页面

标签 c# asp.net-mvc razor

我有一个 Razor View ,其中有一个部分,用户可以在其中为特定日期的临时打开/关闭时间添加新行。它由三个控件组成——一个 DatePicker、两个选择列表和一个“删除行”按钮。现有保存的行通过 Razor 在页面加载时呈现,并且任何新行通过 OnClick 事件和 JavaScript 将大部分固定的 html 附加到 DOM 元素来添加。然后在 HTTPPost 上保存(或根据需要删除)所有行。

我有一个新要求,需要为这些临时的“用户生成”行实现更复杂的数据集。这些行中每一行的 HTML 都非常广泛。有没有一种比在 JavaScript 中附加硬编码 HTML 更优雅的方式来通过单击按钮在 View 中注入(inject) Razor?

最佳答案

这完全取决于您的用例,您没有在您的问题中提供任何代码,但是有一个叫做Partial View 的东西。您可以阅读基本介绍here .

对于你的情况,我会做这样的事情:

Controller

public IActionResult GetNewRow()
{
    return PartialView("_NewRow");
}

查看

<button id="btnAddRow" class="btn btn-primary">Add new row</button>

<script type="application/javascript">
    $(function() {
        $("#btnAddRow").on("click", function () {
            $.get("/GetNewRow", function success(data) {
                $("#WHEREVERYOUAREADDINGROWS").append(data);
            });
        });
    });
</script>

分部 View (_NewRow)

<tr>
    <td>Add whatever you need here</td>
<tr>

注意:我没有尝试过这个,所以 AJAX 语法可能有点不对。

关于c# - 使用 MVC 动态添加到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471184/

相关文章:

asp.net-mvc - MVC4 Razor View 中出现奇怪的空白

c# - 在控制台应用程序中将 HTML 标记传递到 RazorEngine

c# - 用户安装软件时自动安装依赖项(.Net)

c# - .NET 项目中的 ToolsVersion 规范

jquery - 是否有一个可以在模态表单上触发的事件准备就绪?我需要在那里设置下拉列表索引

html - 使用 Razor/Sitecore 编辑 CSS

html - CSS 导航菜单中的事件页面带有 MVC3 中悬停效果的背景图像

为每个请求启动 C# WebClient NTLM 身份验证

c# - 使用图形 API 以编程方式在 Azure 事件目录中注册应用程序

asp.net-mvc - ASP.NET MVC 3 - ViewModel 最佳实践