asp.net core web应用前后台传参

方式一:通过viewmodel绑值传递

modelview中:

using Microsoft.AspNetCore.Mvc.Rendering;

namespace WebApplication1.Models
{
    public class AlarmViewModel
    {
        public List<Alarm>? alarms { get; set; }
        public List<User>? users { get; set; }
        public SelectList? areaList { get; set; }
        public string? areaName { get; set; }
        public string? tagName { get; set; }
        public string? startTime { get; set; }
        public string? endTime { get; set; }

    }
}

html中:

@model WebApplication1.Models.AlarmViewModel
@{
    ViewData["Title"] = "Index";

}
<form asp-controller="Alarm" asp-action="Index">
    <div class="row">
        <div class='col-sm-12'>
            <div class='col-sm-2'>
                <label>开始时间:</label>
            </div>
            <div class='col-sm-3'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepickerStart'>
                        <input type='text' class="form-control" name="startTime" />
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
            <div class='col-sm-2'>
                <label>结束时间:</label>
            </div>
            <div class='col-sm-3'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepickerEnd'>
                        <input type='text' class="form-control" name="endTime" />
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
            <div class='col-sm-2'>
                <input type="submit" value="查询" />
            </div>
        </div>
    </div>
</form>
<table class="table table-striped">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.alarms![0].id)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.alarms![0].fd_tagname)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.alarms![0].fd_tagdesp)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.alarms![0].fd_firstalarmarea)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.alarms![0].fd_occurtime)
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.alarms!)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_tagname)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_tagdesp)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_firstalarmarea)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_occurtime)
                </td>
            </tr>
        }
    </tbody>
</table>

controller中:


        [HttpPost]
        public string Index(string startTime, string endTime, string areaName, string tagName)
        {
            return "开始时间为:" + startTime + "结束时间为:" + endTime + "区域名称为:" + areaName + "变量名称为:" + tagName;
        }

方式二:通过BindProperty属性绑值

html中:

@model IEnumerable<WebApplication1.Models.Alarm>
@{
    ViewData["Title"] = "Index";

}
<form asp-controller="Alarm" asp-action="Index">
    <div class="row">
        <div class='col-sm-12'>
            <div class='col-sm-2'>
                <label>开始时间:</label>
            </div>
            <div class='col-sm-3'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepickerStart'>
                        <input type='text' class="form-control" name="startTime" />
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
            <div class='col-sm-2'>
                <label>结束时间:</label>
            </div>
            <div class='col-sm-3'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepickerEnd'>
                        <input type='text' class="form-control" name="endTime" />
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
            <div class='col-sm-2'>
                <input type="submit" value="查询" />
            </div>
        </div>
    </div>
    <div class="row">
        <div class='col-sm-12'>
            <div class='col-sm-2'>
                <label>变量名称:</label>
            </div>
            <div class='col-sm-3'>
                <div class="form-group">
                    <input type='text' class="form-control" id="tagName" name="tagName" />
                </div>
            </div>
            <div class='col-sm-2'>
                <label>报警区域:</label>
            </div>
            <div class='col-sm-3'>
                <select class="form-control selectpicker" aria-label="Default select example" id="areaName" name="areaName"> 
                </select>
            </div>
        </div>
    </div>
</form>
<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table table-striped">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.id)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.fd_tagname)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.fd_tagdesp)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.fd_firstalarmarea)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.fd_occurtime)
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_tagname)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_tagdesp)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_firstalarmarea)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.fd_occurtime)
                </td>
            </tr>
        }
    </tbody>
</table>

<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdn.bootcss.com/moment.js/2.22.0/moment-with-locales.js"></script>
<script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

<script type="text/javascript">
    $('#datetimepickerStart').datetimepicker({
        format: 'YYYY-MM-DD hh:mm:ss',
        locale: moment.locale('zh-cn'),
    });
    $('#datetimepickerEnd').datetimepicker({
        format: 'YYYY-MM-DD hh:mm:ss',
        locale: moment.locale('zh-cn'),
    });

    loadAreaData();    //执行此函数,从后台获取数据,拼接成option标签,添加到select的里面

    function loadAreaData() {
        $.ajax({
            url: "/alarm/GetAreaList",
            type: 'GET',
            async: false,
            datatype: 'json',
            success: function(data) {
                if (data) {
                    var areanames = [];
                    for (var i = 0; i < data.datas.length; i++) {
                        //拼接成多个<option><option/>
                        areanames.push('<option value="' + data.datas[i].area + '">' + data.datas[i].area + '</option>')
                    }
                    $("#areaName").html(areanames.join(' '));
                }
            },
            error: function() {
                alert('报警区域查询错误');
            }
        });
    }
</script>

controller中:

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using WebApplication1.Data;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class AlarmController : Controller
    {
        private readonly AlarmContext _context;
        private readonly UserContext _context_user;
        [BindProperty(SupportsGet = true)]
        public string? startTime { get; set; }
        [BindProperty(SupportsGet = true)]
        public string? endTime { get; set; }
        [BindProperty(SupportsGet = true)]
        public string? areaName { get; set; }
        [BindProperty(SupportsGet = true)]
        public string? tagName { get; set; }

        public AlarmController(AlarmContext context, UserContext context_user)
        {
            _context = context;
            _context_user = context_user;
        }


        public async Task<IActionResult> Index()
        {
            return View(await _context.alarms.ToListAsync());
        }

        /// <summary>
        /// 条件查询报警区域信息
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public string Index(string startTime, string endTime, string areaName, string tagName)
        {
            return "开始时间为:" + startTime + "结束时间为:" + endTime + "区域名称为:" + areaName + "变量名称为:" + tagName;
        }

        /// <summary>
        /// 获取报警区域信息
        /// </summary>
        /// <returns></returns>
        public IActionResult GetAreaList()
        {
            List<User> users = _context_user.users.OrderBy(m => m.area).ToList();
            return Json(new
            {
                datas = users.Select(s => new
                {
                    s.area
                }).Distinct()
            });
        }

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值