小编Ole*_*syk的帖子

不显眼的验证不适用于Ajax.BeginForm

我有我放的Model1的View,Ajax.BeginForm()在这个View中我有Part2和Model2 Ajax.BeginForm().所以只有在第一种形式工作unobtrusive validation.为什么只在第一次表单工作验证?

第一个视图

@model Model1

@using (Ajax.BeginForm("Action1","Controller",null,new AjaxOption(){ onSuccess = "alert('=)')"},null)
{

   <intput type="submit" value="Save" />
}


Model2 model2 = new Model2();
@Html.EditorFor(m=>model2)
Run Code Online (Sandbox Code Playgroud)

**在Model2视图中我有.**

@model Model2 
@using (Ajax.BeginForm("AddStreet","Controller",new AjaxOption(){onSuccess = "alert('=)'")},option,null)
{

        @Html.LabelFor(m => Model.Name):
        @Html.TextBoxFor(m => Model.Name)
        @Html.ValidationMessageFor(m => Model.Name)

       <intput type="submit" value="Save" />
}
Run Code Online (Sandbox Code Playgroud)

谢谢@Darin Dimitrov的回答.

asp.net-mvc unobtrusive-validation asp.net-mvc-3

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

如何提高SQL Server中日期时间过滤的性能?

我有按datetime列过滤的问题.

我尝试了这两种方法:

datefield < '2013-03-15 17:17:55.179'
datefield < CAST('2013-03-15 17:17:55.179' AS datetime)
Run Code Online (Sandbox Code Playgroud)

我有一个超过3.000.000主要对象的大型数据库.

所以我需要提高datetime过滤的性能.我正在阅读有关UNIX时间戳的信息(将所有内容转换datetime为UNIX时间戳,然后按此UNIX字段进行过滤).

我认为这比过滤更好datetime.但如果有人知道其他方式,我会很感激.

我的查询是:

SELECT TOP (100)  ev.Title as Event_name, po.Name as POI_name, 
po.Address, po.City, po.Region, po.Country, po.Latitude, po.Longitude, ev.Start_time, 
(Select ID_Category FROM SubCategory s where ev.ID_SubCategory = s.ID_SubCategory) as ID_Category, 
ev.ID_SubCategory, ev.ID_Event, ev.ID_Channel, IDChanelEvent, 
ev.FavoriteCount, po.gmtOffset, v.IsFavorite, v1.IsFavorite  
FROM Events ev 
JOIN POI po ON ev.ID_POI = po.ID_POI 
JOIN (SELECT et.id_event as joinIdEv FROM EventTagLink et, tags t 
 WHERE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

32
推荐指数
3
解决办法
7万
查看次数

当我尝试使用Facebook或Google登录时,GetExternalLoginInfoAsync始终返回null

我的OWIN身份验证有问题.GetExternalLoginInfoAsync()当我尝试使用Facebook或Google登录时,我总是收到空值.

但是有一些神秘的案例..当我打开提琴手.我使用这种方法得到正确的数据.

我无法理解

var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
Run Code Online (Sandbox Code Playgroud)

提前致谢!!

c# asp.net-mvc owin asp.net-mvc-5

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

如何使用C#MongoDB.Driver更新深度嵌套的数组?

我有这样的模型:

{  
   "_id":"5b90eea8c02e062be2888446",
   "storeGuid":"e97d4730-9b8a-49ed-be87-caf4054439aa",
   "storeId":"0",
   "storeDbName":"0",
   "tenant":"dev",
   "configGroup":[  
      {  
         "groupName":"peopleCounter",
         "config":[  
            {  
               "key":"averageWaitPeriodTime",
               "value":"60",
            }
         ]
      },
      {  
         "groupName":"sessionMonitor",
         "config":[  
            {  
               "key":"testKey1",
               "value":"987",
            },
            {  
               "key":"testKey2",
               "value":"123",
            }
         ]
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我试图更新value"key":"testKey2"

我有这样的更新声明:

await coll.UpdateOneAsync(
    x => x.StoreGuid == storeGuid
         && x.ConfigGroup.Any(y => y.GroupName == groupName
                                   && y.Config.Any(z => z.Key == model.Key)),
    Builders<StoreModel>.Update.Set(x => x.ConfigGroup[-1].Config[-1].Value, model.Value));
Run Code Online (Sandbox Code Playgroud)

例如,当我尝试groupName使用此类过滤器进行更新时,ConfigGroup[-1]它会起作用。

但是在我们拥有的情况下,ConfigGroup[-1].Config[-1]它不起作用。

我知道两个选项如何更新值:

  • 只需使用更新整个列表 ConfigGroup[-1].Config
  • 或为过滤器指定具体索引,例如 ConfigGroup[configGroupIndex].Config[configKeyIndex].Value

但是我想知道为什么它不适用于-1索引。以及如何正确执行。

请使用c#MongoDB.Driver回答。

提前致谢。

c# mongodb mongodb-.net-driver

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

阻止alt + shift事件或禁用以编程方式更改语言

我需要使用C++ 阻止alt+ shift键事件,或者某种方式阻止更改语言.

提前致谢.

c++ windows events keyevent

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

C++:将LPTSTR转换为char数组

可能重复:
将lptstr转换为char*

我需要转换LPTSTR pCHAR ch[].我是C++的新手.

#include "stdafx.h"
#define _WIN32_IE 0x500
#include <shlobj.h>
#include <atlstr.h>
#include <iostream>
#include <Strsafe.h>

using namespace std;

int main(){
    int a;
    string res;
    CString path;
    char ch[MAX_PATH];
    LPTSTR p = path.GetBuffer(MAX_PATH);
    HRESULT hr = SHGetFolderPath(NULL,CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, p);

/* some operation with P and CH */

    if(SUCCEEDED(hr))
    { /* succeeded */
        cout << ch;
    } /* succeeded */
    else
    { /* failed */
        cout << "error";
    } /* failed */
    cin >> …
Run Code Online (Sandbox Code Playgroud)

c c++ lptstr visual-studio

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