我正在使用Asp.Net Core MVC创建用户可以用来提交一些信息的表单。但是,我的选择标记遇到问题(下面的示例)。每当我使用此表单时,它都不会通过数据验证(例如,显示“请选择一个数字”),因为它始终会返回一个空白。当我在模型中删除RegEx时,它将在My SQL表中存储一个“ 0”。
我已经花了很长时间了,无法弄清楚我的代码出了什么问题。我的其他字段(未包含在下面的代码中)可以正常工作,但即使是在诸如此类的隔离代码中使用,也只有这个特定字段会引起问题。
Create.cshtml
dd <- expand.grid(a = as.factor(1:3),
b = as.factor(1:4),
c = as.factor(1:2),
d= as.factor(1:8))
n <- nrow(dd <- dd[rep(seq_len(nrow(dd)), each = 10), ])
set.seed(17)
dM <- cbind(dd, x = round(rnorm(n), 1))
## randomly drop some
n <- nrow(dM <- dM[- sample(n, 50),])
dM <- within(dM, { A <- c(2,5,10)[a]
B <- c(-10,-1, 3:4)[b]
C <- c(-8,8)[c]
D <- c(10*(-5:-2), 20*c(0, 3:5))[d]
Y <- A + B + A*B + C + D + A*D + C*x + rnorm(n)/10
wts <- sample(1:10, n, replace=TRUE)
rm(A,B,C,D)
})
X <- Matrix::sparse.model.matrix( ~ (a+b+c+d)^2 + c*x, data = dM)
Xd <- as(X,"matrix")
fmDense <- lm(dM[,"Y"]~Xd-1)
ss <- summary(fmDense)
r1 <- MatrixModels:::lm.fit.sparse(X, y = dM[,"Y"], method = "chol")
f <- summary_sparse(r1, X)
all.equal(do.call(cbind, f), ss$coefficients, check.attributes = F)
#TRUE
all.equal(predict_sparse(X, r1$coef)@x, predict(fmDense), check.attributes = F, check.names=F)
#TRUE
Model.cs
@model kpirep_dev.Models.Numbers
@{
ViewData["Title"] = "Create";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Create</title>
<style>
</style>
</head>
<body>
<hr />
<form asp-action="Create">
<div class="row">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="KPID">
<label asp-for="KPID" class="control-label">Number</label>
<select asp-for="KPID" name="KPID">
<option disabled selected value"">select a number</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<span asp-validation-for="Number" class="text-danger"></span>
</div>
</div>
<input type="submit" value="Create" class="btn btn-primary" />
<a asp-action="Index" class="btn btn-secondary">Back</a>
</div>
</form>
</body>
</html>
答案 0 :(得分:-1)
首先,您需要请求控制器而不是模型。 请求方式应该是这样
View -> Controller -> Model
您需要遵循这种方式。发送之前,您已为模型准备好数据。