2013-06-18 119 views
0

我正在开发一个应用程序。我创建了一个视图和一个控制器。该视图有一个按钮,点击它我应该做数据库操作。我已将数据库操作放入模型中,我正在控制器中创建模型的对象。单击按钮时,操作由控制器中的方法处理,并创建模型的对象以从数据库获取记录。我想知道是否有任何方法在视图中显示此数据。正确的方法或视图应直接与模型交互以获取数据。 以下是大干快上的按钮调用在控制器代码点击mvc在控制器和视图之间传递数据

public ActionResult getRecord() 
{ 
DataModel f_DM = new DataModel(); 
DataTable f_DT = f_DM.getRecord(); 

return View(); 
} 

的DataModel是一个简单的方法“getRecord”模型类。 任何帮助将不胜感激。

我想补充一点,我使用VS2010和mvc4

问候

回答

0

是的,这是可能的,但实际上现在很符合逻辑的方式来这一点。

让我们按照你的方式。你有一些查看是你有一个按钮,这将触发此操作。

对于前:

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

里面查看你可以有一个Ajax的链接,这将trigget您getRecord方法:

<div id="GetDataDiv"></div> 
<div> 
@Ajax.ActionLink("Get Record", "getRecord", "ControllerName", null, new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "GetDataDiv" }) 
</div> 

在getRecord方法你应该有:

public ActionResult getRecord() 
{ 
DataModel f_DM = new DataModel(); 
DataTable f_DT = f_DM.getRecord(); 

return PartialView(f_DT); 
} 

而在视图中应该是:

@model DataTable 

@Model.PropertyOne @Model.PropertyTwo 

它应该适合你。 实际上这里同样适用:http://www.dotnetpools.com/Article/ArticleDetiail/?articleId=151

1

你应该在控制器中写入检索数据的逻辑。将所有数据存储在视图模型中并将其传递到视图。

例如。

模型

namespace Mvc4App.Models 
{ 
    public class Product 
    { 
    public string Name { get; set; } 
    } 
    public class ProductViewModel 
    { 
    public Product Product { get; set; } 
    public string SalesPerson { get; set; } 
    } 
} 

控制器

public class ProductController : Controller 
{ 
    public ActionResult Info() 
    { 
    ProductViewModel ProductViewModel = new ProductViewModel 
    { 
     Product = new Product { Name = "Toy" }, 
     SalesPerson = "Homer Simpson" 
    }; 
    return View(ProductViewModel); 
    } 
} 

查看

@model Mvc4App.Models.ProductViewModel 
@{ ViewBag.Title = "Info"; } 
<h2>Product: @Model.Product.Name</h2> 
<p>Sold by: @Model.SalesPerson</p> 

这是最好的已知的实践来传递数据从控制器到视图。

你可以使用其他技术也很喜欢,

1. ViewData 
2. ViewBag 
3. TempData 
4. View Model Object 
5. Strongly-typed View Model Object 
+0

我已经做了上述情况,但我面对的一个问题。当查看。chtml被执行,它优于for循环,并且数据表第一次为空。除非我点击CLick按钮,否则不填充数据表。你可以请建议。 – user1418667

+0

请用最新的代码更新问题,解决问题会更有帮助。 –

相关问题