ASP MVC将SP结果返回给View

时间:2015-06-12 16:30:29

标签: asp.net-mvc return-value

使用VS 2013并编写我的第一个ASP MVC应用程序。我有一个控制器:

import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Response;
import org.glassfish.hk2.api.Factory;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import org.junit.Assert;
import org.junit.Test;

public class InjectionTest extends JerseyTest {

    @Path("test")
    public static class SimpleResource {

        @Inject
        @Named("Oracle")
        private Repository repo;

        @GET
        public String getRepoName() {
            return repo.getClass().getSimpleName();
        }
    }

    @Override
    public Application configure() {
        ResourceConfig config = new ResourceConfig();
        config.register(SimpleResource.class);
        config.register(new AbstractBinder(){
            @Override
            protected void configure() {
                bindFactory(SqlFactory.class)
                        .to(Repository.class).named("Sql");
                bindFactory(OracleFactory.class)
                        .to(Repository.class).named("Oracle");
            }
        });
        return config;       
    }


    public static interface Repository {}

    public static class OracleRepository implements Repository {}

    public static class SqlRepository implements Repository {}

    public static class SqlFactory implements Factory<Repository> {

        @Override
        public Repository provide() {
            return new SqlRepository();
        }

        @Override
        public void dispose(Repository t) {}
    }

    public static class OracleFactory implements Factory<Repository> {

        @Override
        public Repository provide() {
            return new OracleRepository();
        }

        @Override
        public void dispose(Repository t) {}
    }

    /**
     * Change the `Assert` from "OracleRepository" to "SqlRepository"
     * when switching the `@Named` on the injection point.
     */
    @Test
    public void testInjectOk() {
        Response response = target("test").request().get();
        String respString = response.readEntity(String.class);
        Assert.assertEquals("OracleRepository", respString);
        System.out.println(respString);
    }
}

我希望向用户显示结果,并让他们能够返回作业视图。

我尝试了这个作为我的返回值:

返回内容(&#34;您要求创建作业ID和#34的捆绑和纸箱; + id.ToString()+&#34;
结果:&#34; + ReturnMessage +& #34;
返回工作岗位&#34;);

显示结果和链接:

Result

但该链接指向http://localhost:59971/Jobs/CreateBandC/~/Jobs/而不是http://localhost:59971/Jobs/

我该如何解决?

有更好的方法可以返回结果吗?

我在一段时间的压力下,所以这种方法现在可以做,但我想知道如何返回更复杂的类型和更好的视图

由于

标记

1 个答案:

答案 0 :(得分:0)

看起来这需要更改数据库来修复链接。这通常是由于设计不良和紧密耦合造成的。因此,进入数据库并更改存储过程中的a标记以获得所需的结果。