小编dav*_*317的帖子

MVC App上的CSS更改无法正常工作

我使用VS Express for web创建了一个MVC应用程序.它只会使用VS Express附带的默认内置CSS文件.
示例:如果我修改bootstrap.css文件(更改jumbotron颜色),并从VS本地运行,则更改很明显,但是当我进行Web部署时,这些更改都不明显.我还注意到当我将web.config文件修改为Debug = false时,当我从VS本地运行(以及在Web部署中)时,我所做的CSS更改并不明显.

CSS仍在应用,但我所做的任何更改都不会应用.该网站显示旧的默认jumbotron颜色.如果我在web.config中更改debug = true,那么jumbotron会显示我更新的颜色.当我在网站上部署我的网站时,没有应用任何CSS更改,它仍然使用默认的CSS文件,我甚至在服务器上检查了bootstrap.css,它显示了更新的jumbotron颜色,但是jumbotron仍然是网络上的默认颜色?? 超级混乱.

我做了很多阅读,尝试将以下内容添加到我的web.config中:

<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
Run Code Online (Sandbox Code Playgroud)

但这并没有解决它.我尝试从我的文件名中删除.css,这解决了当我使用debug = false从VS本地运行它时的问题,但是当我发布网站时,网站根本没有显示CSS样式.这不是缓存问题.它与bundle和debug = false有关,但我不知道是什么.我对web/MVC开发还很陌生.我用NuGet更新了我的web.optimization和microsoft.aspnet等.

我有一个非常艰难的时间,如果有人有一个建议,它的工作,我会很高兴!Stack Overflow上有很多关于此的帖子,但这些建议都没有对我有用.

这是我的bundle.config.cs:

using System.Web;
using System.Web.Optimization;

namespace HFHYYC
{
        public class BundleConfig
        {

        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

css asp.net-mvc visual-studio twitter-bootstrap bundling-and-minification

5
推荐指数
1
解决办法
1万
查看次数

结合 asp-route-id 和 asp-route-all-data

有什么办法可以使这项工作?

<a class="btn btn-info" asp-action="ActionName" asp-route-id="@item.ID"
                       asp-all-route-data="parms" >Action</a>
Run Code Online (Sandbox Code Playgroud)

这会生成以下链接:

sitename.com/controller/action?parm1=parm1&parm2=parm2
Run Code Online (Sandbox Code Playgroud)

等我希望它生成这个:

sitename.com/controller/action/{id}?parm1=parm1&parm2=parm2
Run Code Online (Sandbox Code Playgroud)

似乎您无法将 route-id 与 asp-route-all-data 结合使用。它是一个表上的链接,所以我的 ID 随每一行而变化,其余的过滤器(搜索字符串、页面、排序等)不会改变。如果这行得通,将节省大量的复制和粘贴。

在写这篇文章时,我意识到我可能可以使用项目字典和我的模型的 IEnumerable 创建一个 Viewmodel,而不仅仅是按原样使用我的模型。有没有其他(更简单的)方法可以使这项工作?

asp.net-mvc asp.net-core-mvc asp.net-core-tag-helpers razor-pages

5
推荐指数
1
解决办法
2864
查看次数

String.Format 在 HTML 电子邮件模板的样式部分失败

我正在使用 Bodybuilder 和邮件发送服务发送 HTML 电子邮件模板。我用这个链接学习。

https://www.c-sharpcorner.com/article/send-email-using-templates-in-asp-net-core-applications/

无论如何,我使用外部服务 ( https://topol.io/ )创建了我的电子邮件模板。

当我尝试将生成的 HTML 文件与第一个链接中引用的 String.FOrmat 命令一起使用时,它给了我错误。我终于发现是这部分代码导致 String.Format 失败。

这是我通常与其他 HTML 模板一起使用的 c# 代码:

using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
            {
                builder.HtmlBody = SourceReader.ReadToEnd();
            }

string messagebody = string.Format(builder.HtmlBody,
                    //Not important
                    );
Run Code Online (Sandbox Code Playgroud)

现在,HTML 中的这种样式代码会导致 String.Format 崩溃(或 bodybuilder,我不确定究竟是哪个问题存在,它在 string.format 处失败)。

<style type="text/css">
        #outlook a {
            padding: 0;
        }

        .ReadMsgBody {
            width: 100%;
        }

        .ExternalClass {
            width: 100%;
        }

            .ExternalClass * {
                line-height: 100%;
            }

        body {
            margin: 0;
            padding: 0;
            -webkit-text-size-adjust: 100%;
            -ms-text-size-adjust: 100%; …
Run Code Online (Sandbox Code Playgroud)

html c# string.format .net-core bodybuilder.js

5
推荐指数
1
解决办法
2273
查看次数

jQuery或Javascript重定向到控制器/动作

我有以下代码在第一次使用时有效:

$("#CompDD").change(function () {
                //var parts = (window.location.pathname.split("/"));
                var ctrlName = '@ViewContext.RouteData.Values["Controller"].ToString()';
                var actnName = '@ViewContext.RouteData.Values["Action"].ToString()';
                var url = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //delete ctrlName;
               // delete actnName;
                //window.location = ($(location).attr('href') + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //window.location = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //$(location).attr('href', url);
                window.location.href = url;
                //alert(ctrlName + "\n" + actnName);
            }); …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc jquery razor

0
推荐指数
1
解决办法
6838
查看次数