asp.net-mvc-3 - 在 ASP.net MVC View 页面上使用 UniDynArray

标签 asp.net-mvc-3 u2 universe uniobjects u2netdk

谁能帮助我了解如何在 ASP.net MVC3 (MS Visual Studio 2010) View 页面上使用 UniDynArray?

我设法向项目添加引用 (U2.Data.Client),并且我可以在 Controller 中使用它,但不能在 View 页面中使用它。

使用 UniDynArray 的原因是,我想将动态数组从 Controller 传递到 View 并返回 Controller 。这样我就不必将每个字段设置为 VIEWDATA 以便在 View 中使用。

最佳答案

我想解释如何通过以下方式将 UniDynArray 从 Controller 传递到 MVC View :

  1. MVVM 模式(原始 UniDynArray)
  2. ViewBag 模式(原始 UniDynArray)
  3. MVVM 模式(将 UniDynArray、UniDynArray 展平为 .NET 对象数据表)
  4. MVVM 模式(将 UniDynArray、UniDynArray 展平为 POCO 对象)

在这篇文章中,我将回答MVVM模式(Raw UniDynArray)。稍后我会介绍休息。

创建 ASP.NET MVC3 项目 pic1

创建模型 pic2

pic3

添加 Controller pic4

pic5

创建 View pic5a

pic5b

打开“CustomerViewModel.cs”文件并粘贴以下代码

命名空间 Test_MvcApplication.Models {

public class CustomerViewModel
{
    public Customer MyCustomer { get; set; }
    public CustomerViewModel(Customer pCustomer)
    {
        MyCustomer = pCustomer;
    }
}

public class Customer
{
    private UniDynArray myVar;
    public UniDynArray MyUniDynArray
    {
        get
        {
            U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();
            conn_str.UserID = "user";
            conn_str.Password = "pass";
            conn_str.Server = "localhost";
            conn_str.Database = "HS.SALES";
            conn_str.ServerType = "UNIVERSE";
            conn_str.AccessMode = "Native";   // FOR UO
            conn_str.RpcServiceType = "uvcs"; // FOR UO
            conn_str.Pooling = false;
            string s = conn_str.ToString();
            U2Connection con = new U2Connection();
            con.ConnectionString = s;
            con.Open();
            Console.WriteLine("Connected.........................");

            // get RECID

            UniSession us1 = con.UniSession;

            UniSelectList sl = us1.CreateUniSelectList(2);

            // Select UniFile
            UniFile fl = us1.CreateUniFile("CUSTOMER");
            fl.RecordID = "2";
            myVar = fl.Read();
            return myVar;
        }
        set
        {
            myVar = value;
        }
    }
}

}

打开“MyUniDynArrayController.cs”并粘贴以下代码。当您注意到您正在将对象传递给 View 并且该对象具有 UniDynArray

命名空间 Test_MvcApplication.Controllers { 公共(public)类 MyUniDynArrayController : Controller { // //获取:/MyUniDynArray/

    public ActionResult Index()
    {
        Customer c = new Customer();
        UniDynArray r = c.MyUniDynArray;

        var l = new CustomerViewModel(c);

        return View(l);

    }

}

}

打开“MyUniDynArray\Index.cshtml”并粘贴以下代码。 @Model 包含 ViewModel 对象(UniDynArray)

@{ ViewBag.Title = "索引"; }

MyUniDynArray

==================

@Model.MyCustomer.MyUniDynArray

pic8

打开“Shared\Layout.cshtml”文件并添加以下行

<nav>
            <ul id="menu">
                <li>@Html.ActionLink("MyUniDynArray", "Index", "MyUniDynArray")</li>
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("About", "About", "Home")</li>

            </ul>
 </nav>

pic9

运行应用程序并按“MyUniDynArray”。您将在 View 中看到 UniDynArray。我不确定您将如何将 UniDynArray 与 HTML5/Razor 控件绑定(bind)。这就是为什么我建议你展平 UniDynArray。

pic6

pic7

MVC View 中的类型化 UniDynArray

enter image description here

关于asp.net-mvc-3 - 在 ASP.net MVC View 页面上使用 UniDynArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15514083/

相关文章:

c# - 如何将值从 View 传递到 Controller

subroutine - 如何使用 U2 Toolkit for .NET 将 U2 业务逻辑子例程的多值数据转换为 .NET 对象,例如 DataSet/DataTable?

asp.net-mvc-3 - MVC 模型值未传递到 Controller

asp.net-mvc - 你是如何填充/验证你的 ViewModel 的?

sql - 通过 .net 访问 UniData

code-injection - 清理 UniData 的输入

sqlite - U2宇宙: update a multivalue field

java - 使用 selectMatchingAK 从备用索引获取选择列表会返回 "The RPC failed"错误

javascript - 在将用户带到 href 位置之前,在 <a> 单击时进行 AJAX 调用是个好主意吗?

u2 - UniVerse RetrieVe 如何查询文件中所有列的值?