提问人:Mahdi Khorshidi 提问时间:12/17/2022 最后编辑:Keivan SoleimaniMahdi Khorshidi 更新时间:12/29/2022 访问量:54
JQuery 不显眼
JQuery Unobtrusive
问:
我在我的引导模式中使用 jquery 不显眼来验证表单。 所以我有用户选择图片的文件字段,但这不是必需的,但当用户提交表单时仍然需要 这是我的模型:
public class CreateSlide
{
[MaxFileUploadSize(1*1024*1024,ErrorMessage = ValidationMessages.uploadSize)]
public IFormFile Picture { get; set; }
[Required(ErrorMessage = ValidationMessages.requiredField)]
public string HeadingText { get; set; }
[Required(ErrorMessage = ValidationMessages.requiredField)]
public string TitleText { get; set; }
[Required(ErrorMessage = ValidationMessages.requiredField)]
public string Text { get; set; }
[Required(ErrorMessage = ValidationMessages.requiredField)]
public string BtnText { get; set; }
}
我在模型中删除了所需的数据注释,我尝试在表单中使用jquery删除它,但它不起作用
答:
0赞
Qing Guo
12/19/2022
#1
所以我有文件字段,用户可以选择一张图片,但这不是必需的 但是当用户提交表单时仍然需要
您有两种选择可以尝试。希望能帮到你。
选项 1 ,从 project.csproj 文件中删除以下代码。阅读本文以了解更多信息。
<Nullable>enable</Nullable>
选项 2 ,添加如下内容:?
public IFormFile ? Picture { get; set; }
更新
索引模型
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
[BindProperty]
public CreateSlide CreateSlide { get; set; }
public void OnGet()
{
}
public void OnPost(CreateSlide createSlide)
{
}
}
索引视图:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
@{
ViewData["Title"] = "Create";
}
<h1>Create</h1>
<h4>CreateSlide</h4>
<hr />
<button id="btnShowModal" type="button"> Upload </button>
<div class="modal fade" id="Modal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button id="btnHideModal" type="button" class="btn btn-secondary" data-dismiss="modal"> ×</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4">
<form method="post" enctype="multipart/form-data">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="CreateSlide.Picture" class="control-label"></label>
<input asp-for="CreateSlide.Picture" type="file" class="form-control" />
<span asp-validation-for="CreateSlide.Picture" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="CreateSlide.HeadingText" class="control-label"></label>
<input asp-for="CreateSlide.HeadingText" class="form-control" />
<span asp-validation-for="CreateSlide.HeadingText" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="CreateSlide.TitleText" class="control-label"></label>
<input asp-for="CreateSlide.TitleText" class="form-control" />
<span asp-validation-for="CreateSlide.TitleText" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="CreateSlide.Text" class="control-label"></label>
<input asp-for="CreateSlide.Text" class="form-control" />
<span asp-validation-for="CreateSlide.Text" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="CreateSlide.BtnText" class="control-label"></label>
<input asp-for="CreateSlide.BtnText" class="form-control" />
<span asp-validation-for="CreateSlide.BtnText" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@section Scripts {
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial");
}
<script type="text/javascript">
$(document).ready(function () {
$("#btnShowModal").click(function () {
$("#Modal").modal('show');
});
$("#btnHideModal").click(function () {
$("#Modal").modal('hide');
});
});
</script>
}
创建幻灯片:
public class CreateSlide
{
public IFormFile Picture { get; set; }
[Required]
public string HeadingText { get; set; }
[Required]
public string TitleText { get; set; }
[Required]
public string Text { get; set; }
[Required]
public string BtnText { get; set; }
}
评论
0赞
Qing Guo
12/20/2022
嗨,@Mahdi Khorshidi,有什么更新吗?如果我的回答能帮助您解决问题,您能接受答案吗?如果没有,你能跟进让我知道吗?请参阅:如何获取答案谢谢。
0赞
Mahdi Khorshidi
12/29/2022
当我使属性可为空(添加?)时,它不起作用,我的所有模型属性都变得可空并且删除 csProj 中的 (<nullable> enable</nullable>) 不起作用
0赞
Qing Guo
12/29/2022
@Mahdi Khorshidi 怎么不醒来?你能解释一下吗?
0赞
Mahdi Khorshidi
12/29/2022
看看你说的第一个解决方案,添加?属性使其可为空,所以我做了一个 proplem 是这个 '?' 影响这个模型中的其他属性,并使所有属性都可以为 null 并且对于您所说的第二个解决方案的相同问题
1赞
Mahdi Khorshidi
12/29/2022
我认为最好在这里聊天并最终评论结果?
评论