小编Dim*_*kiy的帖子

jQuery检查<input>是否存在并具有值

我有以下示例:

<input type="text" class="input1" value="bla"/>
Run Code Online (Sandbox Code Playgroud)

有没有办法检查这个元素是否存在并且在一个语句中有值?或者,至少,任何更短的东西

if($('.input1').length > 0 && $('input1').val() != '')
Run Code Online (Sandbox Code Playgroud)

这里只有一英里长的条件让你感到沮丧.

javascript jquery

66
推荐指数
4
解决办法
21万
查看次数

使用DataContractSerializer序列化,但不能反序列化

我有以下两个功能:

public static string Serialize(object obj)
{
    DataContractSerializer serializer = new DataContractSerializer(obj.GetType());
    MemoryStream memoryStream = new MemoryStream();
    serializer.WriteObject(memoryStream, obj);
    return Encoding.UTF8.GetString(memoryStream.GetBuffer());
}

public static object Deserialize(string xml, Type toType)
{
    MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xml));
   // memoryStream.Position = 0L;
    XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(memoryStream, Encoding.UTF8, new XmlDictionaryReaderQuotas(), null);
    DataContractSerializer dataContractSerializer = new DataContractSerializer(toType);
    return dataContractSerializer.ReadObject(reader);
}
Run Code Online (Sandbox Code Playgroud)

第一个似乎将对象序列化为xml字符串就好了.XML显示有效,没有损坏的标记,开头或结尾没有空格等.现在第二个函数不希望将我的xml字符串反序列化回对象.在最后一行我得到:

反序列化[MY OBJECT TYPE HERE]类型的对象时出错.根级别的数据无效.第1行,第1位.

我究竟做错了什么?我尝试重写Deserialize函数几次,它似乎总是出现同样的错误.谢谢!

哦,这就是我调用2个函数的方式:

SomeObject so = new SomeObject();
string temp = SerializationManager.Serialize(so);
so = (SomeObject)SerializationManager.Deserialize(temp, typeof(SomeObject));
Run Code Online (Sandbox Code Playgroud)

c# xml-serialization datacontractserializer c#-4.0

63
推荐指数
3
解决办法
10万
查看次数

使用lambda连接对象的字符串属性

请考虑以下事项:

public class MyObject
{
   public bool B;
   public string Txt;
}

List<MyObject> list; //list of a bunch of MyObject's 
Run Code Online (Sandbox Code Playgroud)

使用lambda表达式,如何生成由这些对象的Txt的逗号分隔值组成的字符串,其中B为真?

谢谢.

linq lambda c#-4.0

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

Razor语法根据条件呈现部分

我得到了一个定义布局的视图.在布局中,有一个部分:

@RenderSection("JavaScript", required: false)

在视图中,基于条件,我想要将某些JavaScript呈现给该部分.

@if (condition)
{ 
    @section JavaScript
    {
        <script type="text/javascript>
           $(document).ready(function(){
             //bla...
           });
        </script>
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的语法错了.什么是正确的语法?

编辑

基本上,我得到了一个部分视图,需要根据条件进行渲染.如果条件为真,那么我需要将局部视图与部分JavaScript的部分视图一起渲染,我想转到"JavaScript"部分.我怎样才能做到这一点?

razor asp.net-mvc-3

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

有没有办法防止默认事件,然后用jQuery再次激活它?

基本上我有一个锚元素, <a href='bla..'>link</a>

点击后,我首先想要做的事情,只有在完成后我才想把用户带到它链接到的页面.就像是:

$('a').click(function(ev){
   ev.preventDefault();

   //do something here

   ev.refireDefault();
});
Run Code Online (Sandbox Code Playgroud)

有什么建议?

更新

我很抱歉!我的FireFox决定缓存以前版本的JS,所以我尝试过的只是一个简单的CTRL + F5解决了这个问题.

javascript jquery javascript-events

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

如何从局部视图将JavaScript呈现到MasterLayout部分?

鉴于MVC3和Razor引擎,我得到了

_MasterLayout.cshtml

@RenderSection("JavaScript", required: false)
..
..
@RenderBody()
..
Run Code Online (Sandbox Code Playgroud)

View.cshtml与_ViewStart.cshtml中定义的_MasterLayout.cshtml

..
@Html.RenderAction("PartialView", "PartialController")
..
Run Code Online (Sandbox Code Playgroud)

PartialView.cshtml

..
@section JavaScript
{
........
}
..
Run Code Online (Sandbox Code Playgroud)

如何确保部分视图中的JavaScript最终出现在"主布局"部分中?

编辑

上述方案不起作用,因为局部视图没有定义主布局.另一方面,视图确实具有定义了RenderSection的布局.如果我将部分JavaScript从部分视图移动到View,Razor知道将其渲染到何处.但是,由于部分视图没有布局,因此它不知道如何处理部分JavaScript,因此不会将其呈现在任何地方.

razor c#-4.0 asp.net-mvc-3

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

抽象类可以作为控制器动作中的参数吗?

我在Controller中有一个Action函数,它是用AJAX调用的.该行动涉及1个参数.客户端,我构造了一个JSON对象,它应该序列化为该1参数.我遇到的问题是参数类被声明为抽象.因此,它无法实例化.

当AJAX点击该Action时,我得到以下内容:

无法创建抽象类.

堆栈跟踪:

[MissingMethodException:无法创建的抽象类.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,布尔publicOnly,布尔NOCHECK,布尔逻辑canBeCached,RuntimeMethodHandleInternal&构造函数,布尔逻辑bNeedSecurityCheck)0
System.RuntimeType.CreateInstanceSlow(布尔publicOnly,布尔skipCheckThis,布尔fillCache )98
System.RuntimeType.CreateInstanceDefaultCtor(布尔publicOnly,布尔skipVisibilityChecks,布尔skipCheckThis,布尔fillCache)241 System.Activator.CreateInstance(类型类型,布尔非公开)69 ............. ..

有没有办法在不创建不同参数对象的情况下实现这样的场景,"取消声明"参数对象为抽象,或者深入研究MVC的机制?

更新

我目前正在与后端开发人员一起调整他们的对象.无论哪种方式,我认为这将是最终的解决方案.谢谢大家的答案.

c# ajax serialization asp.net-mvc-3

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

如何在MVC 3 Razor中将动态数据写入页面布局?

我有Razor引擎的MVC 3 C#项目.有什么方法,我想,将动态数据写入_Layout.cshtml的最佳做法是什么?

例如,也许我想在我的网站的右上角显示用户名,并且该名称来自会话,数据库或其他任何基于用户登录的内容.

更新:我也在寻找将某些数据渲染到布局元素的良好实践.例如,如果我需要根据登录用户的凭据呈现特定的CSS文件.

(对于上面的例子,我想过使用Url Helpers.)

.net c# razor asp.net-mvc-3

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

xml字符串的通用反序列化

我有一堆不同的DTO课程.它们在某一点被序列化为XML字符串,并被射到Web应用程序的客户端.现在,当客户端回射XML字符串时,我需要将其反序列化回它所代表的DTO类的实例.问题是我想使它成为通用的,并且可能是一个接受xml字符串并吐出类型对象的函数.像这么长的东西:

public sometype? Deserialize (string xml)
{
//some code here
return objectFromXml;
}
Run Code Online (Sandbox Code Playgroud)

编辑:可怕的例子!我只是自相矛盾!

我做不到以下事情:

Person person = Deserialize(personXmlStringFromClient);
Run Code Online (Sandbox Code Playgroud)

因为我不知道personXmlStringFromClient是Person DTO对象实例的表示.

我不知道给了我什么序列化对象,这似乎是我的问题.我一直在阅读有关反射和其他技术的内容,这些技术涉及将类型粘贴到xml中,以便反序列化器知道如何处理它.我似乎无法将它们整合成一个工件.此外,在大多数示例中,作者知道反序列化后将会有什么类型.欢迎任何建议!如果我需要对序列化过程做一些特别的事情,请分享一下.

.net xml serialization xml-serialization c#-4.0

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

使用jQuery选择/提交仅更改的表单字段

我正在寻找一种方法只将更改的表单字段提交给服务器.所以,假设我有一个表格

<form>
    <input type="text" name="a"/>
    <select name="b">...</select>
    <input type="checkbox" name="c"/>
</form>
Run Code Online (Sandbox Code Playgroud)

已经填充了某些数据.用户编辑表单并单击"提交".如果用户只更改了输入b,那么我只想提交输入b.如果只更改了a和c,我只想提交a和c.等等.

我可以自己写一些东西来完成这个,但我想知道可能已经有一些我可以使用的东西了吗?理想情况下,我希望代码简短.像这样的东西是完美的:

$('form').serialize('select-only-changed');
Run Code Online (Sandbox Code Playgroud)

另外,我遇​​到了这个http://code.google.com/p/jquery-form-observe/,但我发现它存在问题.这个插件是否能够稳定运行?

javascript jquery asp.net-mvc-3

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