小编Huw*_*uwD的帖子

使用Delegate.Combine错误事件只能出现在+ =或 - =的左侧?

我正在对一个不再受支持且已停止工作的遗留应用程序进行逆向工程,因此我可以创建一个新应用程序来执行相同的功能.我有这个类使用以下代码模式相当多.

        public event myEventHandler myEvent
        {
            [MethodImpl(MethodImplOptions.Synchronized)]
            add
            {
                myEvent = (myEventHandler)Delegate.Combine(myEvent, value);
            }
            [MethodImpl(MethodImplOptions.Synchronized)]
            remove
            {
                myEvent = (myEventHandler)Delegate.Remove(myEvent, value);
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是,Visual Studio返回错误: "myEvent can only appear on the left-hand side of += or -="

以下代码是否可以解决此错误?delegate.combine与使用之间有什么区别+=吗?

        public event myEventHandler myEvent
        {
            [MethodImpl(MethodImplOptions.Synchronized)]
            add
            {
                myEvent += value;
            }
            [MethodImpl(MethodImplOptions.Synchronized)]
            remove
            {
                myEvent -= value;
            }
        }
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

Umbraco不会清除缓存中的破坏代码

我正在为Umbraco 7创建一个自定义属性编辑器.在controller.js中有一个错误,尽管我要清除缓存,但克隆代码仍然显示在缓存的Dependency Handler中,到目前为止我已经尝试过:

  • 在IIS中重新启动应用程序
  • 重新发布Umbraco网站更改
  • 清除浏览器缓存
  • 在web.config中将Debug ="false"更改为Debug ="true" - 这在调试时有效但在我将其恢复为false时又回到了破坏的缓存版本.
  • 修改ClientDependancy.config以从fileDependencyExtensions中排除.js - 再次这是有效的,而.js被排除但是当我再次添加它时又回到了破坏的代码.
  • 从属性编辑器清单中删除对控制器的引用. - 这允许页面再次加载,但显然属性编辑器没有控制器.
  • 已删除数据类型和所有引用,重新启动应用程序并重新创建它.

必须要做到这一点很容易.有什么建议?

caching umbraco umbraco7

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

控制器生成的<ul>和<li>标签作为文字文本加载

我使用以下代码创建菜单结构作为我的MVC4应用程序的一部分:

    public string loadTabStructure(int lvl, int pId)
    {
        string tabsStr = "";
        DataView lvlTabs = null;
        lvlTabs = dtTabs.AsDataView();
        string strFilter = "";
        if (lvl == 0)
        {
            strFilter = "Level = " + lvl;
        }
        else
        {
            strFilter = "Level = " + lvl + " AND ParentId = " + pId;
        }
        if (strFilter.Length > 0)
        {
            lvlTabs.RowFilter = strFilter;
        }
        DataTable dtLvl = lvlTabs.ToTable();
        if (dtLvl.Rows.Count > 0)
        {
            tabsStr += "<ul>";
            foreach (DataRow row in dtLvl.Rows) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc-4

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

MVC4验证摘要未显示

创建了一个模型并使用必填字段并用于创建如下表单:

模型:

public class formModel {
    [Required]
    public string name {get;set;}
    [Required]
    public string Add1 {get;set;}
    etc....
}
Run Code Online (Sandbox Code Playgroud)

视图:

@model myProj.Models.formModel

@using (BeginForm("Action", "Controller", FormMethod.Post))
{
    @Html.TextBoxFor(f => f.name)
    @Html.TextBoxFor(f => f.Add1)
    etc...

    @Html.ValidationSummary()
    <button type="submit" value="submit">Submit</button>
}
Run Code Online (Sandbox Code Playgroud)

控制器:

[HttpPost]
public ActionResult Action(formModel f)
{
    if (ModelState.IsValid)
    {
        // Do Stuff here
        return RedirectToAction("Result");
    }
    return RedirectToAction("Form", new { id = "showForm" });
 }
Run Code Online (Sandbox Code Playgroud)

问题是如果模型有效,则显示验证摘要.在许多其他形式上使用了相同的方法,并且很好.

有任何想法吗?

c# asp.net-mvc asp.net-mvc-4

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

将视图渲染为字符串

我试图将视图呈现为字符串以用作电子邮件模板.我目前正在尝试实施此示例:https: //weblog.west-wind.com/posts/2012/May/30/Rendering-ASPNET-MVC-Views-to-String

但是我对这部分代码有困难:

public ViewRenderer(ControllerContext controllerContext = null)
{
    // Create a known controller from HttpContext if no context is passed
    if (controllerContext == null)
    {
        if (HttpContext.Current != null)
            controllerContext = CreateController<ErrorController>().ControllerContext;
        else
            throw new InvalidOperationException(
                "ViewRenderer must run in the context of an ASP.NET " +
                "Application and requires HttpContext.Current to be present.");
    }
    Context = controllerContext;
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio给出了以下错误:

"无法找到类型或命名空间名称'ErrorController'(您是否缺少using指令或程序集引用?)"

我可能错过了一些明显但却看不清楚的东西.有任何想法吗?

c# asp.net-mvc

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

标签 统计

c# ×4

asp.net ×2

asp.net-mvc ×2

asp.net-mvc-4 ×2

caching ×1

umbraco ×1

umbraco7 ×1