我已经为这个项目中的一些表单使用了复合视图模型的模式.它工作得很好.
在这种情况下,我有一个VendorAddress视图模型.我在这个项目的几个地方使用Address(es),所以我制作了一个可以重复使用的Address视图模型对象.然后我决定要对状态代码和拉链进行非常彻底的检查,所以我决定使用远程验证并检查状态和邮政编码,以便在数据库中存储一组表.
问题是我没有将值返回到我要求的字段的远程操作方法(在本例中为State和PostalCode).我相信这是因为MVC框架对于输入的id(s)的复合或子类型的名称,在这种情况下它的名称如'Address_Line1'和'Address_State'和'Address_PostalCode'.
最终我的问题是,是否有一种方法可以从基础视图模型对象中关闭预先设置的'Address_',以便MVC框架可以在表单之后将其放入对象中?
public class AddressViewModel
{
[ScaffoldColumn(false)]
public int AddressId { get; set; }
[Required(ErrorMessage = "Please enter the first address line")]
public string Line1 { get; set; }
public string Line2 { get; set; }
public string Line3 { get; set; }
[Required(ErrorMessage = "Please enter a city name")]
public string City { get; set; }
[Required(ErrorMessage = "Please enter a state 2 letter code")]
[StringLength(2)]
[Remote("CheckState", "Validation", AdditionalFields = "PostalCode")]
public string State { get; set; …Run Code Online (Sandbox Code Playgroud) 我已将环境升级到 TypeScript 2.4.1 并已将"strict": true,tsconfig.json。我真的很喜欢严格的空检查,这太酷了,但是,我\xe2\x80\x99m 遇到了我使用的 redux 东西的砖墙。我\xe2\x80\x99m使用的是通过npm安装的模块\xe2\x80\x98redux-localstorage\xe2\x80\x99。对于这个新的 TypeScript 编译器来说,它\xe2\x80\x99 很旧,可能已经过时,并且工作时没有任何问题。它抛出错误, \xe2\x80\x9cTS7016 - (TS) 找不到模块 \'redux-localstorage\' 的声明文件。\xe2\x80\x9d
我找到了一个 \xe2\x80\x98@types/ redux-localstorage\xe2\x80\x99 ,但似乎是对一个更旧版本的模块完成的,其参数与我的参数不同。正如我所说,我知道该模块可以工作,它\xe2\x80\x99s 只是不支持这种严格的类型检查。
\n\n问题是,我\xe2\x80\x99m 仅从一个 .ts 文件调用该模块,并且我只使用一个函数。因此,在这个 .ts 文件的顶部我有这样的导入语句:
\n\nimport persistState from \'redux-localstorage\';
在我更新到较新的 TypeScript 并打开严格检查之前,此语句运行良好,但现在我收到了所述错误。
\n\n我有两个问题,有人知道快速且简单的解决方法吗?我确实不想\xe2\x80\x99t 关闭严格检查(我认为这就是导致问题的原因)。但也许有一种方法可以只针对这个文件关闭它?
\n\n第二个问题是,如果没有 \xe2\x80\x9cquick fix\xe2\x80\x9d 我可以为这个模块编写自己的 \xe2\x80\x98.d.ts\xe2\x80\x99 文件吗?这一项功能。如果是这样,有人可以指点我如何做吗?如前所述,我只需要为一个函数创建一种类型。
\n\n更新 - 我已经解决了问题
\n\n我创建了这种类型的文件:
\n\n// Type definitions for redux-localstorage persistState, until a better solution becomes available\nimport * as Redux from "redux";\n\nexport interface ConfigRS {\n key: string;\n …Run Code Online (Sandbox Code Playgroud) 我已经阅读了有关ASP.NET Core和CORS的所有文章,并且相信我能理解其中的大部分内容,但是,如果我能够将其投入使用,我该死的。我正在使用Chrome浏览器,以下是数据:
预过滤:
General:
Request URL:http://localhost:34376/api/login
Request Method:OPTIONS
Status Code:204 No Content
Remote Address:[::1]:34376
Response Headers:
view source
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:access-control-allow-origin,content-type
Access-Control-Allow-Origin:http://localhost:3000
Date:Wed, 23 Nov 2016 03:05:00 GMT
Server:Kestrel
Vary:Origin
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcUHJvamVjdHNcbXZjXFNob3BVc1NlcnZpY2Vcc3JjXFNob3BVc1NlcnZpY2VcYXBpXGxvZ2lu?=
Request Headers:
view source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:access-control-allow-origin, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:34376
Origin:http://localhost:3000
Referer:http://localhost:3000/authentication
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
发布:
Request URL:http://localhost:34376/api/login
Request Method:POST
Status Code:500 Internal Server Error
Remote Address:[::1]:34376
Response Headers:
view source
Content-Length:0
Date:Tue, 22 Nov …Run Code Online (Sandbox Code Playgroud)