小编Kma*_*man的帖子

_ViewStart.cshtml布局文件在何处以及如何链接?

这是默认MVC 3模板中的About.cshtml:

@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
     Put content here.
</p>
Run Code Online (Sandbox Code Playgroud)

我希望能找到对_ViewStart文件的引用About.cshtml,但显然不是.

我看着在global.asaxweb.config,但我不能找出如何将About.cshtml文件"链接"从_ViewStart文件的布局.

一切都按预期工作,我只想知道引擎盖下发生了什么......

.net asp.net-mvc razor asp.net-mvc-3

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

MVC Razor HTML Helper语法:Html.Hidden对象参数中的Viewbag

我正在尝试将一个对象添加到我的Html.Hidden HTML帮助器中,但我无法正确地获得语法.

语法1:

@Html.Hidden("hiddenDate", ViewBag.myDate.ToString("dd.MM.yyyy"))
Run Code Online (Sandbox Code Playgroud)

导致运行时错误,无法解析视图中的@ Html.Hidden.

语法2:

@Html.Hidden("hiddenDate", new { String = ViewBag.myDate.ToString("dd.MM.yyyy")})
Run Code Online (Sandbox Code Playgroud)

设置值="{String = 16.04.2012}"

我想将值仅提供给"16.04.2012",但经过几次语法调整后没有成功

asp.net-mvc razor

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

LINQ to Entity:多个连接条件

关于LINQ和多个连接的帖子很多.但是,我没有找到任何我想要加入的解决方案.

SQL等价物将是这样的:

SELECT * FROM table1 a
LEFT JOIN table2 b ON a.col1 = b.key1 AND
a.col2 = b.key2 AND
b.from_date <= now() AND
b.deleted = 0;
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的众多linq查询之一

var query = (from x in context.table1
             join y in context.table2 on new {x.col1, x.col2} equals {b.key1, b.key2} 
             into result
             from result......
Run Code Online (Sandbox Code Playgroud)

我怎样才能添加日期和删除标志的附加条件?如果我使用.Where条件,则将其视为内连接,而不是左连接.

linq linq-to-entities

35
推荐指数
3
解决办法
4万
查看次数

MVC 3客户端验证,模型绑定十进制值和文化(不同的小数分隔符)

我正在尝试进行客户端验证(模型绑定)以支持不同的文化,我发现了一个有趣的博客,我正在尝试实现该主题.

http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx

波科

  public class Jogador
  {
    public int ID { get; set; }

    public string Name { get; set; }

    public decimal Salary { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

我有自定义的DecimalModelBinder类

  public class DecimalModelBinder : IModelBinder
  {
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
      ValueProviderResult valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
      ModelState modelState = new ModelState {Value = valueResult};

      object actualValue = null;
      try
      {
        actualValue = Convert.ToDecimal(valueResult.AttemptedValue, CultureInfo.CurrentCulture);
      }
      catch (FormatException e)
      {
        modelState.Errors.Add(e);
      }

      bindingContext.ModelState.Add(bindingContext.ModelName, modelState);
      return actualValue;
    }
  }
Run Code Online (Sandbox Code Playgroud)

我的web.config:

<compilation …
Run Code Online (Sandbox Code Playgroud)

model asp.net-mvc-3

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

保持用户ID(MVC)的最佳实践

我使用FormsAuthentication,但我添加了一个自定义的MemberShipProvider来验证自定义用户表.

包含"用户数据"的所有表都有一个idUser列,因此我需要维护用户ID以向用户显示其数据.

以前我使用过会话变量(ASP.NET Webform),但是当我将Web应用程序重写为MVC时,我想问一下通常被认为是最好的方法.

会话变量仍然是保存idUser的最佳位置,或者我应该添加自定义"Current.User.Identity",除了用户名还包含公共userId?

或者我应该选择完全不同的方法?

asp.net-mvc forms-authentication

6
推荐指数
1
解决办法
4252
查看次数

覆盖WPF OnStartUp会导致多个窗口实例

在一个简单的MVVM方法中,我通过覆盖App.xaml中的OnStartup将MainWindow链接到ViewModel.

  public partial class App : Application
  {

    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);

      MainWindow window = new MainWindow();
      var viewModel = new MainWindowViewModel();
      window.DataContext = viewModel;
      window.Show();
    }

  }
Run Code Online (Sandbox Code Playgroud)

当我运行WPF应用程序时,这会导致MainWindow的两个实例.难道它不应该导致一个因为我压倒启动?

其中一个窗口显示正确的DataContext(ViewModel),而另一个则不显示.

wpf mvvm

6
推荐指数
1
解决办法
2698
查看次数

TFS从一个字段"复制"值到另一个字段

我需要从PlainText - > String中更改工作项字段.由于我无法更改工作项上的类型,因此创建新字段并从其他字段更新其值是我的方法.

我已尝试过TFS/Web中的"批量编辑所选工作项"..但我不确定您是否可以在该模板中引用其他字段值.

如何设置[工作项].[FieldNew] .Value = [工作项].[FieldOriginal] .Value ??

这是否可以在不使用TFD API的情况下实现?

在此输入图像描述

我需要将项字段类型从PlainText更改为String的原因是我希望查询列操作符以测试该字段是否具有值.

对于plainText字段,唯一允许的运算符是Contains/Does Not Contain.我可以覆盖它以允许">"吗? 在此输入图像描述

tfs workitem

6
推荐指数
2
解决办法
2473
查看次数

MVC4 Custom HandleErrorAttribute,未调用global.asax中的方法

我无法在我的MVC4应用程序中使用Custom HandleErrorAttribute.

记录异常的自定义类

  public class HandleAndLogErrorAttribute : HandleErrorAttribute
  {
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

    public override void OnException(ExceptionContext filterContext)
    {
      var message = string.Format("Exception     : {0}\n" +
                                  "InnerException: {1}", 
                                  filterContext.Exception,
                                  filterContext.Exception.InnerException);
      Logger.Error(message);
      base.OnException(filterContext);
    }
  }
Run Code Online (Sandbox Code Playgroud)

在Global.asax中我添加了一个新的静态方法:

  public class MvcApplication : System.Web.HttpApplication
  {
    protected void Application_Start()
    {
      AreaRegistration.RegisterAllAreas();

      WebApiConfig.Register(GlobalConfiguration.Configuration);
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
      RouteConfig.RegisterRoutes(RouteTable.Routes);
    }

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
      filters.Add(new HandleAndLogErrorAttribute()); //Todo: log all errors
      throw new Exception("not called???");
    }

  }
Run Code Online (Sandbox Code Playgroud)

抛出异常时,会加载error.chstml,但永远不会调用自定义HandlErrorAttribute中的OnException覆盖.

我怀疑没有调用Global.asax中的RegisterGlobalFilters方法,并在那里抛出异常(参见代码)证实了这一点.永远不会抛出这个例外.

在web.config文件中,我设置了customErrors:

<customErrors mode="On">
</customErrors>
Run Code Online (Sandbox Code Playgroud)

我在另一个解决方案中使用了相同的方法,我不明白为什么这个HandleErrorAttribute扩展不起作用.

asp.net-mvc asp.net-mvc-4

6
推荐指数
1
解决办法
9509
查看次数

AssemblyInfo和自定义属性

我想添加自定义属性AssemblyInfo,我创建了一个名为的扩展类AssemblyMyCustomAttribute

[AttributeUsage(AttributeTargets.Assembly)]
public class AssemblyMyCustomAttribute : Attribute
{
    private string myAttribute;

    public AssemblyMyCustomAttribute() : this(string.Empty) { }
    public AssemblyMyCustomAttribute(string txt) { myAttribute = txt; }
}
Run Code Online (Sandbox Code Playgroud)

然后我添加了对该类的引用AssemblyInfo.cs并添加了值

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("My Project")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("My Project")]
[assembly: AssemblyMyCustomAttribute("testing")]
[assembly: AssemblyCopyright("Copyright ©  2016")]
[assembly: AssemblyTrademark("")] …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc assemblyinfo

6
推荐指数
1
解决办法
3766
查看次数

重载Html.LabelFor的简单方法是添加'后缀'?

我想为html.labelfor添加一个扩展名,以便我可以使用类似的东西:

@Html.LabelFor(m=>m.Description, ":")
Run Code Online (Sandbox Code Playgroud)

哪个会在呈现的HTML中添加分号作为后缀:

描述:

asp.net-mvc-4

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

通过ajax打开FileStreamResult(作为下载的文件)

是否可以使用 ajax 调用将 FileStreamResult 作为下载文件打开?

控制器方法

public FileStreamResult DownloadPDF()
{
        var stream = myHandler.getFileStream("myfile.pdf");
        return File(stream, "application/pdf", "myfile.pdf"));
}
Run Code Online (Sandbox Code Playgroud)

html代码

<a href="#" class="mydownload">Click Me</a>
<script type="text/javascript>
    $("a.mydownload").click(function () {
        $.ajax({
            method: 'GET',
            url: 'http://myserver/file/DownloadPDF',
            success: function (data, status, jqXHR) {
                var blob = new Blob([data], { type: "application/pdf" })
                var url = window.URL.createObjectURL(blob);
                var a = document.createElement("a");
                document.body.appendChild(a);
                a.href = url;
                a.click();

            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在 IE 上运行我被拒绝访问,但在 Chrome 上它运行良好。但是,我确实得到了一个“空白”/无效的 pdf。

javascript asp.net-mvc

2
推荐指数
1
解决办法
9928
查看次数

怪异的JavaScript行为FireFox 5.0

我有一个javascript运行很长时间,我从来没有在IE或早期版本的Firefox中遇到任何问题.但是在Firefox 5.0中,如果失败.

注意!已删除该公式以简化示例,因为我已确认该公式正在运行并产生预期结果.

<script type="text/javascript">
    function NaN(Num) {
        return (isNaN(Num) || Num == Infinity || Num == -Infinity ? "n/a" : Num);
    }

    function CalculateFormula() {
        result = NaN(*formula*);
    }

</script>
Run Code Online (Sandbox Code Playgroud)

当要调用NaN函数时,javascript就会退出.它就像IE中的魅力一样,但为了支持FireFox 5.0,我从结果中删除了NaN功能.

function CalculateFormula() {
    result = *formula*;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个,但是在调用NaN函数时它也会退出脚本.但这证实我的公式按预期返回了一个数字.

function CalculateFormula() {
    result = *formula*;
    result = NaN(result);
}
Run Code Online (Sandbox Code Playgroud)

谁可以解释这个问题呢?

javascript firefox-5

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

将 svg base64 字符串转换为图像 - C#

我向服务器发布了一个 svg 字符串,以便

  1. 将 svg 字符串转换为图像 (png)
  2. 将图像保存到数据库(二进制数据)

然而,我无法将字符串成功转换为图像。

SVG 字符串是从https://willowsystems.github.io/jSignature/#/demo/生成的,我使用 svgbase64 提取。

示例内容: "image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNDAzIiBoZWlnaHQ9IjEwNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTSAxMjUgMSBjIC0wLjEyIDAuNjggLTMuOSAyNi4xOSAtNyAzOSBjIC0xLjkgNy44NyAtNC44NiAxNS44MiAtOCAyMyBjIC0xLjQgMy4xOSAtMy42MyA2Ljc4IC02IDkgYyAtMi41NiAyLjQgLTYuNTggNC45IC0xMCA2IGMgLTUuMzUgMS43MiAtMTEuOTYgMS42MiAtMTggMyBjIC0xMC4yNyAyLjM1IC0xOS43MSA1LjcxIC0zMCA4IGMgLTguMDYgMS43OSAtMTYuMyAzLjI4IC0yNCA0IGMgLTIuNTUgMC4yNCAtNi42MSAwLjM5IC04IC0xIGMgLTIuOTMgLTIuOTMgLTYuNzMgLTkuOTEgLTggLTE1IGMgLTIuNDkgLTkuOTYgLTMuMDggLTIxLjcyIC00IC0zMyBjIC0wLjc4IC05LjUxIC0xLjI2IC0xOS4zMSAtMSAtMjggYyAwLjA2IC0xLjk2IDEuMDggLTQuMzUgMiAtNiBjIDAuNjEgLTEuMTEgMS45MSAtMi41MiAzIC0zIGMgMS41NiAtMC42OSA0LjE1IC0wLjQ1IDYgLTEgYyAxLjM2IC0wLjQxIDIuNjUgLTEuODcgNCAtMiBjIDExLjUyIC0xLjEgMjYuMzkgLTIuNDcgMzggLTIgYyAzLjU3IDAuMTUgOC4wNCAxLjk5IDExIDQgYyA0LjgzIDMuMjggOS4zNyA4LjM3IDE0IDEzIGMgNi4zNSA2LjM1IDExLjY4IDEyLjg5IDE4IDE5IGMgMy40MyAzLjMyIDcuNDcgNS43MiAxMSA5IGMgNS45NyA1LjU0IDEwLjk4IDExLjUzIDE3IDE3IGMgNS4xNiA0LjY5IDEwLjM0IDkuNDggMTYgMTMgYyA2LjM5IDMuOTcgMTQuNDYgNi4xNSAyMSAxMCBjIDQuNjIgMi43MSA4LjQ3IDcuNjYgMTMgMTAgYyA0LjYzIDIuMzkgMTAuNTQgMy43MiAxNiA1IGMgNS45NCAxLjQgMTEuOTYgMi42OCAxOCAzIGMgMTIuOTEgMC42OCAyNS43IDAuNzMgMzkgMCBjIDM2LjI2IC0yIDczLjAzIC0zLjk1IDEwNiAtOCBjIDUuNDIgLTAuNjcgMTAuNSAtNS4xMiAxNiAtNyBjIDYuMTggLTIuMTIgMTMuMyAtMy4wMiAxOSAtNSBjIDEuNDUgLTAuNSAyLjc2IC0xLjg4IDQgLTMgYyAyLjQ1IC0yLjIzIDUuNjggLTQuNTEgNyAtNyBjIDEuMzYgLTIuNTYgMS43MiAtNi42NyAyIC0xMCBjIDAuMzggLTQuNTggMC44NyAtOS45OCAwIC0xNCBjIC0wLjY0IC0yLjk1IC0yLjk4IC02LjM1IC01IC05IGMgLTMuMTkgLTQuMTkgLTcuMjQgLTkuMzcgLTExIC0xMiBjIC0yLjEzIC0xLjQ5IC02LjMgLTEuMSAtOSAtMiBjIC0xLjA2IC0wLjM1IC0xLjk1IC0xLjc1IC0zIC0yIGMgLTQuMTMgLTAuOTcgLTkuMzIgLTEuOTEgLTE0IC0yIGMgLTExLjkyIC0wLjI0IC0yNC4xMiAtMC4wNiAtMzYgMSBjIC02LjczIDAuNiAtMTQuMiAxLjUgLTIwIDQgYyAtOC4wNSAzLjQ4IC0xNS44IDEwLjI4IC0yNCAxNSBjIC0yLjg1IDEuNjQgLTYuMzIgMi4yNSAtOSA0IGMgLTYuNzkgNC40NSAtMTMuMDcgMTAuMTUgLTIwIDE1IGwgLTEwIDYiLz48L3N2Zz4="

这是我的代码:

    var svgContent = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNDAzIiBoZWlnaHQ9IjEwNiI+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTSAxMjUgMSBjIC0wLjEyIDAuNjggLTMuOSAyNi4xOSAtNyAzOSBjIC0xLjkgNy44NyAtNC44NiAxNS44MiAtOCAyMyBjIC0xLjQgMy4xOSAtMy42MyA2Ljc4IC02IDkgYyAtMi41NiAyLjQgLTYuNTggNC45IC0xMCA2IGMgLTUuMzUgMS43MiAtMTEuOTYgMS42MiAtMTggMyBjIC0xMC4yNyAyLjM1IC0xOS43MSA1LjcxIC0zMCA4IGMgLTguMDYgMS43OSAtMTYuMyAzLjI4IC0yNCA0IGMgLTIuNTUgMC4yNCAtNi42MSAwLjM5IC04IC0xIGMgLTIuOTMgLTIuOTMgLTYuNzMgLTkuOTEgLTggLTE1IGMgLTIuNDkgLTkuOTYgLTMuMDggLTIxLjcyIC00IC0zMyBjIC0wLjc4IC05LjUxIC0xLjI2IC0xOS4zMSAtMSAtMjggYyAwLjA2IC0xLjk2IDEuMDggLTQuMzUgMiAtNiBjIDAuNjEgLTEuMTEgMS45MSAtMi41MiAzIC0zIGMgMS41NiAtMC42OSA0LjE1IC0wLjQ1IDYgLTEgYyAxLjM2IC0wLjQxIDIuNjUgLTEuODcgNCAtMiBjIDExLjUyIC0xLjEgMjYuMzkgLTIuNDcgMzggLTIgYyAzLjU3IDAuMTUgOC4wNCAxLjk5IDExIDQgYyA0LjgzIDMuMjggOS4zNyA4LjM3IDE0IDEzIGMgNi4zNSA2LjM1IDExLjY4IDEyLjg5IDE4IDE5IGMgMy40MyAzLjMyIDcuNDcgNS43MiAxMSA5IGMgNS45NyA1LjU0IDEwLjk4IDExLjUzIDE3IDE3IGMgNS4xNiA0LjY5IDEwLjM0IDkuNDggMTYgMTMgYyA2LjM5IDMuOTcgMTQuNDYgNi4xNSAyMSAxMCBjIDQuNjIgMi43MSA4LjQ3IDcuNjYgMTMgMTAgYyA0LjYzIDIuMzkgMTAuNTQgMy43MiAxNiA1IGMgNS45NCAxLjQgMTEuOTYgMi42OCAxOCAzIGMgMTIuOTEgMC42OCAyNS43IDAuNzMgMzkgMCBjIDM2LjI2IC0yIDczLjAzIC0zLjk1IDEwNiAtOCBjIDUuNDIgLTAuNjcgMTAuNSAtNS4xMiAxNiAtNyBjIDYuMTggLTIuMTIgMTMuMyAtMy4wMiAxOSAtNSBjIDEuNDUgLTAuNSAyLjc2IC0xLjg4IDQgLTMgYyAyLjQ1IC0yLjIzIDUuNjggLTQuNTEgNyAtNyBjIDEuMzYgLTIuNTYgMS43MiAtNi42NyAyIC0xMCBjIDAuMzggLTQuNTggMC44NyAtOS45OCAwIC0xNCBjIC0wLjY0IC0yLjk1IC0yLjk4IC02LjM1IC01IC05IGMgLTMuMTkgLTQuMTkgLTcuMjQgLTkuMzcgLTExIC0xMiBjIC0yLjEzIC0xLjQ5IC02LjMgLTEuMSAtOSAtMiBjIC0xLjA2IC0wLjM1IC0xLjk1IC0xLjc1IC0zIC0yIGMgLTQuMTMgLTAuOTcgLTkuMzIgLTEuOTEgLTE0IC0yIGMgLTExLjkyIC0wLjI0IC0yNC4xMiAtMC4wNiAtMzYgMSBjIC02LjczIDAuNiAtMTQuMiAxLjUgLTIwIDQgYyAtOC4wNSAzLjQ4IC0xNS44IDEwLjI4IC0yNCAxNSBjIC0yLjg1IDEuNjQgLTYuMzIgMi4yNSAtOSA0IGMgLTYuNzkgNC40NSAtMTMuMDcgMTAuMTUgLTIwIDE1IGwgLTEwIDYiLz48L3N2Zz4=";
    var bytes = Convert.FromBase64String(svgContent);


    using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(svgContent)))
    {
        using (Bitmap bm2 = new Bitmap(ms))
        {
            bm2.Save("c:\\temp" + "myImage.jpg");
        }
    }
Run Code Online (Sandbox Code Playgroud)

将流设置为位图时出现异常。我想问题出在我的 svgContent 上,但不确定是什么。

在此处输入图片说明

c# svg visual-studio jsignature

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