@page
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@{
}
@functions{
public AppInfo item { get; set; }

public void OnGet([FromQuery] Guid Id) {
item = App.GetItem(Id) ?? new AppInfo();
item.Location = "111";
item.Title = "1";
}

public APIReturn OnPost() {
item = new AppInfo();
foreach (var f in Request.Form) item[f.Key] = f.Value;
var a = item;
return APIReturn.成功.SetData("item", a, "title", item);
}
}

<form method="POST">
<div>Description: <input asp-for="item.Title" /></div>
<input type="submit" value="Save Second" class="btn btn-primary btn-xs" />
</form>

<div id="mainvue">
<table cellspacing="0" rules="all" class="table table-bordered table-hover" border="1" style="border-collapse:collapse;">
<tr v-if="item.Id">
<td>id</td>
<td><input v-model="item.id" type="text" readonly class="datepicker" style="width:60%;background-color:#ddd;" /></td>
</tr>
<tr>
<td>默认渠道id</td>
<td>
<select v-model="item.default_merchant_id">
<option value="">------ 请选择 ------</option>
@foreach (var fk in Channel_merchant.Select.ToList()) {
<option value="@fk.Id">@fk.Title</option>}
</select>
</td>
</tr>
<tr>
<td>描述</td>
<td><textarea v-model="item.description" style="width:100%;height:100px;" editor="ueditor"></textarea></td>
</tr>
<tr>
<td>地址</td>
<td><input v-model="item.location" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr>
<td>负责人名</td>
<td><input v-model="item.manager" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr>
<td>old_id</td>
<td><input v-model="item.old_id" type="text" class="form-control" data-inputmask="'mask': '9', 'repeat': 6, 'greedy': false" data-mask style="width:200px;" /></td>
</tr>
<tr>
<td>省区域</td>
<td><input v-model="item.province" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr>
<td>状态</td>
<td>
<select v-model="item.row_state">
<option value="">------ 请选择 ------</option>
@foreach (object eo in Enum.GetValues(typeof(Et_row_stateENUM))) {
<option value="@eo">@eo</option>}
</select>
</td>
</tr>
<tr>
<td>手机</td>
<td><input v-model="item.telephone" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr>
<td>机构抬头名称</td>
<td><input v-model="item.title" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr>
<td>所属用户id</td>
<td><input v-model="item.xuser_id" type="text" class="datepicker" style="width:60%;" /></td>
</tr>
<tr v-if="item.Id">
<td>创建时间</td>
<td><input :value="item.create_time" type="text" readonly class="datepicker" style="width:20%;background-color:#ddd;" /></td>
</tr>
<tr>
<td>更新时间</td>
<td><input :value="item.update_time" type="text" readonly class="datepicker" style="width:20%;background-color:#ddd;" /></td>
</tr>
<tr>
<td width="8%">&nbsp</td>
<td><input type="button" @@click="save" />&nbsp;<input type="button" value="取消" /></td>
</tr>
</table>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
function ajaxRequest(type, url, data, callback, failCallBack) {
type = String(type || 'GET').toUpperCase();
if (type == 'GET') {
var dataStr = ''; //数据拼接字符串
Object.keys(data).forEach(key => {
if (Object.prototype.toString.call((data[key])) == '[object Array]') {
for (var a = 0; a < data[key].length; a++)
if (data[key][a] !== undefined) dataStr += key + "=" + data[key][a] + "&";
}
if (data[key] !== "" && data[key] !== null) dataStr += key + '=' + data[key] + '&';
})

if (dataStr !== '') {
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
url = url + '?' + dataStr;
}
}
var sendData = '';
var contentType = 'application/x-www-form-urlencoded; charset=utf-8';
if (type == "FORM") {
for (var key in data) {
if (Object.prototype.toString.call((data[key])) == '[object Array]') {
for (var a = 0; a < data[key].length; a++)
if (data[key] !== undefined) sendData += key + "=" + data[key][a] + "&";
}
else if (data[key] !== "" && data[key] !== null) sendData += key + "=" + data[key] + "&";
}
}
if (type == 'JSON') {
sendData = JSON.stringify(data);
contentType = "application/json; charset=utf-8";
}
if (!failCallBack) failCallBack = console.log;
var requestObj = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject;
requestObj.onreadystatechange = () => {
if (requestObj.readyState == 4) {
if (requestObj.status == 200) {
var obj = requestObj.response
if (typeof obj !== 'object') obj = JSON.parse(obj);
if (obj.code === 0) return callback(obj.data);
failCallBack(obj);
} else {
failCallBack(requestObj)
}
}
};
requestObj.open(type == 'GET' ? type : 'POST', url, true);
requestObj.setRequestHeader("Content-type", contentType);
requestObj.setRequestHeader("token", 111);
requestObj.setRequestHeader("appid", 22);
requestObj.send(sendData || null);
}

var vue = new Vue({
el: '#mainvue',
data: {
item : @Json.Serialize(item)
},
components: {
},
computed: {
},
created: function () {
var _self = this;
'@Html.AntiForgeryToken()'.replace(/ value="([^"]+)"/, function ($0, $1) {
_self.item.__RequestVerificationToken = $1;
});
},
methods: {
save: function () {
ajaxRequest('JSON', '', this.item, function (data) {
debugger
var json = data.body;
this.data = eval("(" + json + ")");
}, function (response) {
console.info(response);
})
}
}
});
</script>

RazorPage 小测试,作下记录的更多相关文章

  1. 测试环境下将centos6.8升级到centos7的操作记录(转)

    在测试环境下安装openstack,由于在centos6下安装openstack,针对源的问题有很多,安装起来很不顺利! 但是在centos7下安装却很顺利,所以考虑将服务器由centos6升级到ce ...

  2. RobotFramework测试环境搭建记录

    Robotframwork测试环境搭建记录 1.安装Python2.7(https://www.python.org/) 在环境变量path中加入“C:\Python27” 安装后的验证方法为在命令行 ...

  3. 20155322 2017-2018-1《信息安全系统设计》第二周 课堂测试 Linux下C语言实现MYOD

    20155322 2017-2018-1<信息安全系统设计>第二周 课堂测试 Linux下C语言实现MYOD [博客目录] 静态库测试 实现方法 相关资料 操作 动态库测试 实现方法 相关 ...

  4. 2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业

    2017-2018-1 20155327 <信息安全系统设计基础>课堂测试&课下作业 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep ...

  5. PHP中使用PDO操作事务的一些小测试

    关于事务的问题,我们就不多解释了,以后在学习 MySQL 的相关内容时再深入的了解.今天我们主要是对 PDO 中操作事务的一些小测试,或许能发现一些比较好玩的内容. 在 MyISAM 上使用事务会怎么 ...

  6. 微信小程序-自定义下拉刷新

    最近给别个公司做技术支持,要实现微信小程序上拉刷新与下拉加载更多 微信给出的接口不怎么友好,最终想实现效果类似QQ手机版 ,一共3种下拉刷新状态变化,文字+图片+背景颜色 最终实现后的效果(这里提示有 ...

  7. 2017-2018-1 20155330 《信息安全系统设计基础》第10周课堂测试&课下作业

    2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习st ...

  8. 微信小程序的下拉刷新

    微信小程序的下拉刷新:在page的js文件中有监听用户下拉刷新的处理函数onPullDownRefresh:function(){} //js文件中自带的处理函数,在onUnload下面,注意不要重复 ...

  9. 微信小程序禁止下拉_解决小程序下拉出现空白的情况

    微信小程序禁止下拉 在微信小程序中,用力往下拉动,页面顶部会出现一段空白的地方. 产品的需求不太允许这么做,会影响用户体验,查看文档发现可以使用enablePullDownRefresh这属性来实现, ...

随机推荐

  1. 表示一个文件的 File 类型

    从本篇文章开始,我们将开启对 Java IO 系统的学习,本质上就是对文件的读写操作,听上去简单,其实并不容易.Java 的 IO 系统一直在完善和改进,设计了大量的类,也只有理解了这些类型被设计出来 ...

  2. Python_自定义栈

    customStack.py '''栈:是一种运算受限的线性表,其特点在于仅允许在一端进行元素的插入和删除操作,最后入栈的最先出栈,而最先入栈的元素最后出栈''' s = [] s.append(3) ...

  3. OC和Swift中的UITabBar和UINaviGationBar的适配 [UITabbar在IPad中的适配]

    作者 sundays http://www.cnblogs.com/sundaysgarden/ OC中UITabbar的适配[iphoneX和Ipad适配] 自定可以UITabar 自定义UITab ...

  4. C++相关:部分标准库特殊设施

    C++ tuple(元组) tuple是C++11新标准里的类型.它是一个类似pair类型的模板.pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以 ...

  5. 检测磁盘驱动的健康程度SMART

    在linux中,工具包的名字为smartmontools 在CentOS中可以使用 yum install smartmontools来安装工具 首先通过smartctl -i /dev/sda 来检 ...

  6. 如何使用RedisTemplate访问Redis数据结构

    RedisTemplate介绍 spring封装了RedisTemplate对象来进行对redis的各种操作,它支持所有的 redis 原生的api. RedisTemplate在spring代码中的 ...

  7. Swagger使用教程大全,从入门到精通

    Swagger是遵守OpenAPI规范(OAS)的世界上最大的API框架开发工具,可在整个API生命周期内进行开发,从设计和文档到测试和部署.它提供了许多试用的工具来帮助开发者进行接口开发,如及时接口 ...

  8. shell 常用命令语法简介

    一.grep用法 ************************************** ++++++用一些特殊的函数来处理参数++++++ *$# 传递给函数的参数个数 *$* 显示所有传递给 ...

  9. redis缓存本地安装教程

    http://www.runoob.com/redis/redis-install.html

  10. FPGA学习笔记(一)——初识FPGA

    ###### [该随笔部分内容转载自小梅哥]       ######### FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可 ...