ServiceStack 项目实例 005 使用第一个服务功能 (在MVC项目中)

建立好服务后,我们就可以在MVC项目中使用这个服务,在使用这个服务之前,需要先确定一下它所在端口,只需要在SS项目上点右键,将其设置为启动项目,然后运行一下SS项目,在浏览器地址栏,就可以看到这个服务的端口号,并且也能看到已经添加到其中的服务。(运行的效果可以在001节中的截图看到,001节中的端口为59068。)

在MVC的Controller目录下添加一个控制器NewsController.cs,在NewsController.cs中加入一个 Action, 用来显示添加新闻的页面

public ActionResult Create()
        {
            return View();
        }

在Views目录下添加目录News,在News中新建文件Create.cshtml,或者在控制器中代码上点右键直接直接建立视图页,在Create.cshtml视图中添加

<h2>添加新闻</h2>
<div>
    <form method="POST" id="newsStory" class="reply" >
        <fieldset>
            <div class="row">
                <div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
                    <label>标题: <span>*</span></label>
                    <input class="form-control" id="headline" name="headline" type="text" value="" required=""/>
                </div>
                <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">
                    <label>日期: </label>
                    <input class="form-control" id="date" name="date" value="" type="text"/>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                    <label>内容: <span>*</span></label>
                    <textarea class="form-control" id="text" name="text" rows="3" cols="40" required> </textarea>
                </div>
            </div>
        </fieldset>
        <button class="btn-normal btn-color submit bottom-pad" type="submit">Send</button>
        
        
    </form>
</div>

在NewsController.cs 中添加一个Action,接收上一个页面的表单提交过来的数据,注意加上声明

[HttpPost],指定接收POST数据

[HttpPost]
        public ActionResult Create(NewsStory newsStory)
        {
            try
            {
                var service = new JsonServiceClient("http://localhost:59068/");
                service.Send<SubmissionResponse>(new Submission()
                {
                    Body = newsStory.Text,
                    Headline = newsStory.Headline,
                    SubmissionTime = newsStory.Date
                });               
               
            }
            catch(Exception ex)
            {
                ViewBag.Message = ex.Message;
            }
            return View();
        }

运行测试:

1  将SS项目设置为启动项目,运行项目启动服务,

2  启动服务后,在MVC项目上点右键,选择“调试-启动新实例”,

3 启动MVC站点后,在添加新闻的页面添加一条新闻测试,提交成功后,可以在数据库中的Submission表中看到新增的数据

4  Submission表是在DataRepository的AddSubmission函数中通过 db.CreateTable<Submission>();自动创建的,不需要手工建立这个表

主要参考资料 :  Getting Started with ASP.NET MVC, ServiceStack and Bootstrap

时间: 2024-12-28 09:03:06

ServiceStack 项目实例 005 使用第一个服务功能 (在MVC项目中)的相关文章

.net MVC项目中每个文件夹的功能

App_Data:一个比较特殊的文件夹,把文件放到这个文件夹,通过地址访问是访问不到的,ASP.NET会帮我们屏蔽掉.通常放一些数据库文件.xml配置文件以防止数据泄露 Content:一般放CSS样式.样式图片 Controllers:放控制器文件 Models:放ViewsModels Scripts:放js.JQ Views:放试图的文件夹 Global.asax:全局应用程序

第一章 服务网关

一.什么是服务网关 服务网关 = 路由转发 + 过滤器 1.路由转发:接收一切外界请求,转发到后端的微服务上去: 2.过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验.限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的). 二.为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置: 每个服务自己实现一遍 写到一个公共的服务中,然后其他所有服务都依赖这个服务 写到服务网关的前置过滤器中,所有请求过来进行权限校验 第一种,缺点太明显,基本不用:第二

【原创】Mindjet Manager思维导图软件云服务功能的使用方法

注:自己使用了mindjet manager来画思维导图已经有一段时间了,无疑mindjet manager的功能是很强大的,但是最近因为自己两台电脑都安装了mindjet manager,每次在不同电脑编辑同一份文档时,都要通过U盘或现在流行的网盘传输,才能在另一台电脑上继续进行编辑.最终寻求网络帮助,才发现mindjet manager早就有了云服务功能,欣喜之下,继续搜索,想要知道这云服务的具体使用方法,但最终得到的结果都令人可惜,基本上关于mindjet manager云服务功能使用的详

ServiceStack 项目实例 006 通过官方示例总结的项目结构方案

研读了官方示例的ServiceStack.Examples 和 ServiceStack.Northwind,总结如下的项目方案结构,这种方式比较适合较大的项目,并且规范化很好,易于扩展和对接. 项目结构规范要求 根据ServiceStack官方示例项目,总结出如下项目规范: 项目目录结构,以产品管理模块示例: 需要建立三个项目: >> Product.Web >> Product.ServiceInterface >> Product.ServiceModel 1 对

ServiceStack 项目实例 007

ServiceStack的官网提供了不少的项目案例下载,不过有的示例不能拿来即用,而且案例中还有用的是用VS2010开发的,SS的版本也比较旧,要调整一下才可以运行. 官方示例项目下载地址 https://github.com/ServiceStack/ServiceStack.Examples/tree/v3 其中包含如下示例项目(第一个目录是升级到VS2013的升级记录): 在<StarterTemplates>目录下有 一些项目起始模板 SS框架可以在.net3.5以上的VS开发环境下使

一、WCF学习之旅-创建第一个服务

WCF基本介绍:http://baike.baidu.com/link?url=TGjLYt3HS4dt4-hIiGRknLy6udRsZ52QxJz9cmRKlR4NXbP9rCZDsKn2fDfGeBEfyQL9XlTMy_aW4Zno3HEkKa WCF有三种通信模式:单向.请求-响应.双工.这些通信模式留待后面再继续学习和讲解. 今天要学习的是创建一个测试的demo,所谓的hello world入门级程序.OK,let's start! 1.创建解决方案和项目 打开vs2015,文件>新

ServiceStack.Hello——跨平台.net REST api服务搭建

ServiceStack.Hello——跨平台.net REST api服务搭建 自己创建: https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice 直接下载源码: https://github.com/ServiceStack/ServiceStack.Examples/tree/master/src/ServiceStack.Hello 在VS2013中启动项目: 查看metadata: h

Yii2快速构建RESTful Web服务功能简介

Yii2相比Yii1而言,一个重大的改进是内置了功能完备的RESTful支持. 其内置RESTful支持提供了如下功能: 使用ActiveRecord的通用接口来快速构建原型: 应答格式协商(缺省支持 JSON 和 XML): 可定制的对象序列化,支持选择输出哪些列: 请求数据的格式化以及验证错误: 通过HTTP 动词映射实现高效路由: 支持 OPTIONS 和 HEAD 动词: 认证 和 鉴权: 支持 HATEOAS(RESTful的架构约束,超媒体即应用程序状态): 结果缓存,可使用 yii

谷歌宣布完毕第一辆全功能无人驾驶汽车原型

谷歌宣布.该公司已经完毕了第一辆无人驾驶汽车原型,这是该公司的首辆全功能无人驾驶汽车. 对一辆现有的汽车进行改动从而使其具备无人驾驶功能是一回事.而从头開始生产一辆无人驾驶汽车则是还有一回事.谷歌在5月首次发布了其无人驾驶汽车.但当时展出的原型并不包含方向盘.油门踏板.后视镜及其它部件. 过去三个月中.谷歌组装了其它很多原型,每一种都旨在測试无人驾驶汽车的各种系统.如转向和刹车系统等一般汽车都有的系统,以及计算机和传感器等无人驾驶部件等. 第一辆全功能无人驾驶汽车原型 谷歌之前公布的原型还没有车