2014年4月29日 星期二
[MVC] View丟字串給Controller
Author: Mango
|
at:清晨7:00
|
Category :
MVC
|
How To Pass A String With A Form Value To Controller?
View丟字串給Controller
View的部分:
命名name屬性,等等直接對應到controller的參數名稱
示範html寫法和Razor寫法
@using (Html.BeginForm())
{
<ul>
<li><input type="text" name="tbText1" /></li>
<li>CM_PKey : @Html.TextBox("tbText2", "", new { @class = "cls" })</li>
</ul>
<p><input type="submit" name="name" value="Search"/></p>
}
controller 接資料:
[HttpPost]
public ActionResult Details(string tbText1, string tbText2)
{
if(tbCMPKey.Length <= 0)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
int id = Convert.ToInt32(tbCMPKey);
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Opera o = context.Operas.Find(id);
if (o == null)
return HttpNotFound();
return View(o);
}
參考
http://www.dreamincode.net/forums/topic/286321-how-to-pass-a-string-with-a-form-value-to-controller/
延伸其他用法
FormCollection collection
http://microsoftmasterpiece.blogspot.tw/2013/01/mvc4-razor-how-to-get-value-from-view.html
2014年4月28日 星期一
[C#] class屬性值 - GetProperty().SetValue
Author: Mango
|
at:下午6:52
|
Category :
C#
|
由DataSet的ColumnName 自動對應Class屬性並塞值
Type temType = oClass.GetType();
Parallel.For(0, oClass.DataSet.Tables[0].Columns.Count - 1, (i, loopState) =>
{
try
{
string oColumnName = oClass.BaseDataSet.Tables[0].Columns[i].ColumnName;
string sValue = oClass.BaseDataSet.Tables[0].Rows[0][oColumnName];
temType.GetProperty(oColumnName).SetValue(oClass, sValue, null);
}
catch (Exception e)
{
string sErrorMsg = e.ToString();
}
});
http://fecbob.pixnet.net/blog/post/41199263-%E5%8F%8D%E5%B0%84%E9%81%8D%E6%AD%B7list%3C%3E%E6%B3%9B%E5%9E%8B%E5%9E%8B%E5%88%A5
http://www.dotblogs.com.tw/lastsecret/archive/2010/10/20/18475.aspx
http://msdn.microsoft.com/zh-tw/library/axt1ctd9(v=vs.110).aspx
http://www.dotblogs.com.tw/ken74114/archive/2010/11/17/19510.aspx
http://stackoverflow.com/questions/6637679/reflection-get-attribute-name-and-value-on-property
Type temType = oClass.GetType();
Parallel.For(0, oClass.DataSet.Tables[0].Columns.Count - 1, (i, loopState) =>
{
try
{
string oColumnName = oClass.BaseDataSet.Tables[0].Columns[i].ColumnName;
string sValue = oClass.BaseDataSet.Tables[0].Rows[0][oColumnName];
temType.GetProperty(oColumnName).SetValue(oClass, sValue, null);
}
catch (Exception e)
{
string sErrorMsg = e.ToString();
}
});
http://fecbob.pixnet.net/blog/post/41199263-%E5%8F%8D%E5%B0%84%E9%81%8D%E6%AD%B7list%3C%3E%E6%B3%9B%E5%9E%8B%E5%9E%8B%E5%88%A5
http://www.dotblogs.com.tw/lastsecret/archive/2010/10/20/18475.aspx
http://msdn.microsoft.com/zh-tw/library/axt1ctd9(v=vs.110).aspx
http://www.dotblogs.com.tw/ken74114/archive/2010/11/17/19510.aspx
http://stackoverflow.com/questions/6637679/reflection-get-attribute-name-and-value-on-property
2014年4月27日 星期日
[MVC] TempData、ViewData、ViewBag
Controller:
ViewData["date1"] = DateTime.Now;
ViewBag.date2 = DateTime.Now;
View:
<div>
@(((DateTime)ViewData["date2"]).ToShortDateString())
<hr />
@ViewBag.date1.ToShortDateString()
</div>
from: http://www.dotblogs.com.tw/inblackbox/archive/2013/06/03/105240.aspx
1.ViewData
存放在物件中,生命週期為一個頁面。
Controller :
存放在物件中,生命週期為一個頁面。
Controller :
1 | public ActionResult Index() |
2 | { |
3 | ViewData[ "message" ] = "訊息" ; |
4 | return View(); |
5 | } |
View :
1 | @ViewData["message"] |
2.ViewBag
這是MVC 3 之後新增的,使用方式和ViewData一樣,差別在於ViewBag 使用 dynamic 型別,可免去手動轉型的麻煩,使用上較為方便,但也因為動態型別關係,速度上會略比ViewData來的慢(人體無感吧@@)。
Controller :
這是MVC 3 之後新增的,使用方式和ViewData一樣,差別在於ViewBag 使用 dynamic 型別,可免去手動轉型的麻煩,使用上較為方便,但也因為動態型別關係,速度上會略比ViewData來的慢(人體無感吧@@)。
Controller :
1 | public ActionResult Index() |
2 | { |
3 | ViewBag.message = "訊息" ; |
4 | return View(); |
5 | } |
View :
1 | @ViewBag.message |
3.Temp Data
資料會儲存在Session 中,其生命週期為一個 Request,一旦Request結束就會被刪除。 因此我們可善用此特性讓資料跨不同Action傳遞至View,如RedirectToAction 中作使用,範例如下:
Controller :
資料會儲存在Session 中,其生命週期為一個 Request,一旦Request結束就會被刪除。 因此我們可善用此特性讓資料跨不同Action傳遞至View,如RedirectToAction 中作使用,範例如下:
Controller :
01 | public ActionResult Index() |
02 | { |
03 | TempData[ "status" ] = "我是從index送過來的!" ; |
04 | return RedirectToAction( "about" ); |
05 | } |
06 |
07 | public ActionResult about() |
08 | { |
09 | return View(); |
10 | } |
http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html
訂閱:
文章 (Atom)