如何将C#生成的内容嵌入Alert框或类似组件?
解决Razor页面中SQL查询结果显示在Alert框外的问题
嘿,作为刚接触C#和Visual Studio的新手,遇到这种渲染问题很正常~你的核心问题其实很简单:你把Razor的C#循环代码写在了Alert容器的外面,所以渲染后这些动态生成的内容自然会出现在Alert框的外部,而不是里面。
我给你调整一下代码,把动态内容放到Alert内部,同时优化代码显示的格式:
<div class="alert alert-dismissible alert-primary"> <button type="button" class="close" data-dismiss="alert">×</button> <h4 class="alert-heading" style="text-align:center">Code generated:</h4> <p class="mb-0">Copy and paste the code below.</p> <!-- 把动态生成的代码放到Alert内部,用pre+code标签保留代码格式 --> <pre><code> @foreach (var row in db.Query(sql_getData7)) { @row.TEST1@*- 这里注意你原来的连字符,如果是要输出连字符,改成@row.TEST1- 或者确认是不是笔误 -*@ } @foreach (var row in db.Query(sql_getData5)) { @row.TEST2@*- 同样检查连字符的需求 -*@ } @foreach (var row in db.Query(sql_getData6)) { @row.TEST3 } </code></pre> </div>
几个关键调整点:
- 把Razor循环移到Alert的
<div>内部:这样动态生成的内容会被包含在Alert容器里,不会跑到外面。 - 用
<pre><code>标签包裹代码:这两个标签组合可以保留代码的换行和缩进,避免你之前遇到的“显示效果差”的问题,让生成的代码看起来更规整,方便用户复制。 - 检查循环里的连字符:你代码里的
@row.TEST1-看起来有点奇怪,如果是要在每个TEST1值后面加连字符,那没问题;如果是笔误多打了,记得修正。
另外,如果你担心多个循环的内容连在一起不好看,可以在每个循环之间加个换行或者分隔符,比如在循环结束后加<br>或者在code里直接换行(pre标签会保留这些格式)。
内容的提问来源于stack exchange,提问作者brayk
相关产品推荐
相关产品推荐

