小编Jon*_*son的帖子

循环引用防止对象图的序列化

我有一个涉及杂草和杂草家庭的简单数据模型.

WeedFamily <-1---*-> Weed (WeedFamily和Weed有一对多的关系)

我正在尝试完成我的第一个ApiController,以便我可以轻松地将我的数据检索为AngularJS应用程序的JSON.当我/WeedAPI/在我的应用程序中访问URL时,出现以下错误.我很确定问题是我Weed和之间有循环引用WeedFamily.

我应该如何改变我的数据模型,使JSON序列化将同时保持的双向质量工作Weed- WeedFamily的关系?

(即我仍然希望能够构建如下表达式:

 WeedData.GetFamilies()["mustard"].Weeds.Count
Run Code Online (Sandbox Code Playgroud)

WeedData.GetWeeds()[3].Family.Weeds
Run Code Online (Sandbox Code Playgroud)

)

错误:

<Error>
    <Message>An error has occurred.</Message>
    <ExceptionMessage>
        The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
    </ExceptionMessage>
    <ExceptionType>System.InvalidOperationException</ExceptionType>
    <StackTrace/>
    <InnerException>
        <Message>An error has occurred.</Message>
        <ExceptionMessage>
            Object graph for type 'WeedCards.Models.WeedFamily' contains cycles and cannot be serialized if reference tracking is disabled.
        </ExceptionMessage>
        <ExceptionType>
            System.Runtime.Serialization.SerializationException
        </ExceptionType>
        <StackTrace>
            at System.Runtime.Serialization.XmlObjectSerializerWriteContext.OnHandleReference(XmlWriterDelegator xmlWriter, Object obj, Boolean canContainCyclicReference) …
Run Code Online (Sandbox Code Playgroud)

c# oop asp.net-apicontroller

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

Razor助手中的奇怪NullRefereneceException

我在C#Web Forms应用程序中使用Razor Helpers .

以下代码在调用时编译并呈现A-OK:

@helper MemberListItem(string firstname, string lastname, string avatarUrl)
{
    <li>
        @firstname @lastname
        @avatarUrl
    </li>
}
Run Code Online (Sandbox Code Playgroud)

输出(两次调用助手):

<li>Bryan Arnold ../../Resources/Images/Placeholders/generic-user-image.jpg</li>
<li>Doug Bland ../../Resources/Images/Placeholders/generic-user-image.jpg</li>
Run Code Online (Sandbox Code Playgroud)

但是,当我改变助手,以便avatarUrl被放置在src一个属性img标签,我得到一个NullReferenceExceptionfirstname.是的,NullReferenceException是的firstname.

以下代码编译但在调用时抛出NRE:

@helper MemberListItem(string firstname, string lastname, string avatarUrl)
{
    <li>
        @firstname @lastname
        <img src="@avatarUrl"/>
    </li>
}
Run Code Online (Sandbox Code Playgroud)

请记住,除了帮助程序中的位置之外,我不会更改任何内容@avatarUrl.

如何显示图像?

更新1: 我也试过包装我的img代码<text></text>(无济于事):

<li>
    @firstname @lastname
    <text>
        <img src="@avatarUrl"/>
    </text>
</li>
Run Code Online (Sandbox Code Playgroud)

更新2: 这是错误:

Object …
Run Code Online (Sandbox Code Playgroud)

c# webforms razor razor-2

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

LINQ相当于f#的builder.Zero()?

所以,我已经沉迷于f#的计算表达式和自定义构建器.我必须在日常工作的大部分时间里使用c#,但仍然希望将LINQ表达式与我自己的monads/monoids一起使用.有没有人知道是否有ac#analog to f#Zero方法?

相关的f#docs

这是我在f#中所做的:

type OptionBuilder() =
    member x.Bind(v,f) = Option.bind f v
    member x.Return v = Some v
    member x.ReturnFrom o = o
    member x.Zero() = Option.None

let option = OptionBuilder()

// Example usage (I want something similar from c#)

let t : Option<int> =
    option { if false then return 5 }
Run Code Online (Sandbox Code Playgroud)

c# f# monoids

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

按成对的顺序排序

我有一组排名,按组和排名排序:

Group | Rank
------------
  A   |  1
  A   |  2
  A   |  3
  A   |  4
  A   |  5
  A   |  6
  B   |  1
  B   |  2
  B   |  3
  B   |  4
  C   |  1
  C   |  2
  C   |  3
  C   |  4
  C   |  5
  D   |  1
  D   |  2
  D   |  3
  D   |  4
Run Code Online (Sandbox Code Playgroud)

我想交换组,按组和排名排序,每组n个排名(这里,n = 2):

Group | Rank
------------
  A   |  1
  A   |  2
  B   |  1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-order-by sql-server-2008

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

计算angularjs中已选中复选框的数量

我尝试使用此代码显示已检查的复选框的数量

<li class="list-group-item" ng-repeat="user in data">
  <input type="checkbox" ng-model="user.checked"/>
  {{user.name}}
</li>

<p>total checked: {{user.checked.length}}</p>
Run Code Online (Sandbox Code Playgroud)

我也在{{}}内尝试了count()但是没有用.

演示plunker

javascript angularjs

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

向谷歌地图添加自定义控件(为交通层添加切换)

我正在尝试添加带有控件的 Google Maps Traffic Layer,由于我对此很陌生,因此无法弄清楚。我已经通过一些微调从互联网上获得了以下脚本,但我无法弄清楚如何将控件放入地图。我只需要一种方法来为普通用户打开和关闭交通层,所以如果有比将控件添加到地图更好的方法,我愿意做任何事情。谢谢。

var map;
var chicago = new google.maps.LatLngBounds();

function HomeControl(controlDiv, map) {
    controlDiv.style.padding = '5px';

    var controlUI = document.createElement('div');
    controlUI.style.backgroundColor = 'white';
    controlUI.style.borderStyle = 'solid';
    controlUI.style.borderWidth = '2px';
    controlUI.style.cursor = 'pointer';
    controlUI.style.textAlign = 'center';
    controlUI.title = 'Click to set the map to Home';
    controlDiv.appendChild(conrolUI);

    var controlText = document.createElement('div');
    controlText.style.fontFamily = 'Arial.sans-serif';
    controlText.style.fontSize = '12px';
    controlText.style.paddingLeft = '4px';
    controlText.style.paddingRight = '4px';
    controlText.innerHTML = '<b>Home</b>';
    controlUI.appendChild(controlText);


    googlemaps.event.addDomListener(controlUI, 'click', function() {
        map.setCenter(chicago)
    });

}

function addtrafficlayer() {
    var myLatlng …
Run Code Online (Sandbox Code Playgroud)

html javascript

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