所以我想我会将 JavaScript 文件转换为 Razor 页面并将其放入 /Pages/SomeFile/Index.cshtml
没有办法在单独的 JS 文件中实现 Razor 代码。
1.您应该在您的 .cshtml 文件中设置变量数据,如下所示:
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="@Model.Id" class="control-label"></label>
<input asp-for="@Model.Id" class="form-control" />
<span asp-validation-for="Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@Model.Name" class="control-label"></label>
<input asp-for="@Model.Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="button" id="button1" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
@section Scripts {
<script src="~/js/site.js" type="text/javascript"></script>
<script>
$('#button1').click(function () {
Create({
name : '@Model.Name',
id: '@Model.Id'
// ... other module options
});
});
</script>
}
您在wwwroot/js 中的site.js 文件:
function Create(options) {
//get the model value like below
var name = options.name;
var id = options.id;
$.ajax({
url: "/Tests/Create?name=" + options.name,
type: 'Post',
headers: { 'RequestVerificationToken': $('input:hidden[name="__RequestVerificationToken"]').val() },
success: function (data) {
alert("success");
}
})
}
2.另一种方法是将js代码放在剃须刀页面中:
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="@Model.Id" class="control-label"></label>
<input asp-for="@Model.Id" class="form-control" />
<span asp-validation-for="Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="@Model.Name" class="control-label"></label>
<input asp-for="@Model.Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="button" value="Create" onclick="Create()" class="btn btn-primary" />
</div>
</form>
</div>
</div>
@section Scripts {
<script>
function Create() {
var name = '@Model.Name'
$.ajax({
url: "/Tests/Create?name=" + name,
type: 'Post',
headers: { 'RequestVerificationToken': $('input:hidden[name="__RequestVerificationToken"]').val() },
success: function (data) {
alert("success");
}
})
}
</script>
}