Html.TextBox vs Html.TextBoxFor in MVC
Html.TextBox and Html.DropDownList are not strongly typed and hence they doen't require a
strongly typed view. This means that we can hardcore whatever name we want.
On the other hand, Html.TextFor and Html.DropDownListFor are strongly typed and requires
a strongly typed view, and the name is inferred from the Lambda expression.
Whether we use Html.TextBox and Html.DropDownlist or Html.TextBoxFor and Html.DropDownListFor,
the end result is the same. they produce the same Html.
Dotnet, DotnetCore, Azure, C#,VB.net, Sql Server, WCF, MVC ,Linq, Javascript and Jquery
12 August 2013
Nested List in C#
Nested List in C#
Consider there are two Class
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List< Addresses > { get; set; }
}
public class Address
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
Procedure used to add multiple class in the List
var personDetails = new List< Person >
{
new Person
{
Id = 1, FirstName = "Arun",
LastName = "Prakash",
Addresses = new List< Address >
{
new Address{Line1 = "Hope College",Line2 = "Coimbatore"}
}
},
new Person{
Id = 2, FirstName = "Sanjay",
LastName = "Ramasamy",
Addresses = new List< Address >
{
new Address{Line1 = "Anna Salai",Line2= "Chennai"}
}
}
};
Consider there are two Class
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List< Addresses > { get; set; }
}
public class Address
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
Procedure used to add multiple class in the List
var personDetails = new List< Person >
{
new Person
{
Id = 1, FirstName = "Arun",
LastName = "Prakash",
Addresses = new List< Address >
{
new Address{Line1 = "Hope College",Line2 = "Coimbatore"}
}
},
new Person{
Id = 2, FirstName = "Sanjay",
LastName = "Ramasamy",
Addresses = new List< Address >
{
new Address{Line1 = "Anna Salai",Line2= "Chennai"}
}
}
};
5 August 2013
Html.RenderPartial vs Html.Partial, Html.RenderAction vs Html.Action
Html.RenderPartial vs Html.Partial, Html.RenderAction vs Html.Action
@Html.Partial("Details")
@Html.Action("Index", "Home")
and
@{ Html.RenderPartial("Details"); }
@{ Html.RenderAction("Index", "Home"); }
Html.Partial returns a string, Html.RenderPartial calls Write internally, and returns void.
You can store the output of Html.Partial in a variable, or return it from a function. You cannot do this with Html.RenderPartial.
Html.RenderPartial -The result will be written to the Response stream during the execution.
The same is true for Html.Action and Html.RenderAction.
@Html.Partial("Details")
@Html.Action("Index", "Home")
and
@{ Html.RenderPartial("Details"); }
@{ Html.RenderAction("Index", "Home"); }
Html.Partial returns a string, Html.RenderPartial calls Write internally, and returns void.
You can store the output of Html.Partial in a variable, or return it from a function. You cannot do this with Html.RenderPartial.
Html.RenderPartial -The result will be written to the Response stream during the execution.
The same is true for Html.Action and Html.RenderAction.
MVC 3 Ajax Json Sample
MVC 3 Ajax Json Sample
Create model name PersonDetails.cs
using System.Collections.Generic;
namespace MVCJsonAjax.Models
{
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List< Address > Addresses { get; set; }
}
public class Address
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
}
Create Controller - SaveController.cs
using System.Web.Mvc;
using MVCJsonAjax.Models;
namespace MVCJsonAjax.Controllers
{
public class SaveController : Controller
{
//
// GET: /Save/
[ActionName("SaveData"),HttpGet]
public ActionResult SaveData()
{
return View();
}
[ActionName("SaveData"), HttpPost]
public JsonResult SaveData(Person objPerson,Address objAddress)
{
JsonResult result = new JsonResult();
// Save logic - save person and address details
result.Data = "Saved Successfully";
return result;
}
}
}
Create View for ActionResult SaveData()
@using MVCJsonAjax.Models
@{
ViewBag.Title = "SaveData";
}
< h2 >
Save Data< /h2 >
< div>
< div id="message" >
< /div>
< /div >
< script type =" text/javascript ">
$(document).ready(function () {
$('#btnSubmit').click(function () {
var Person =
{
FirstName: $('#Item1_FirstName').val(),
LastName: $('#Item1_LastName').val()
};
var Address =
{
Line1: $('#Item2_Line1').val(),
Line2: $('#Item2_Line2').val(),
ZipCode: $('#Item2_ZipCode').val(),
City: $('#Item2_City').val(),
State: $('#Item2_State').val(),
Country: $('#Item2_Country').val()
};
var obj = { "Per": Person, "Add": Address};
$.ajax({
url: '/Save/SaveData',
type: "POST",
data:JSON.stringify({objPerson: Person ,objAddress: Address }),
cache: false,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (result) {
$('#message').html(result).fadeIn();
}
});
return false;
});
});
@model Tuple< Person, Address >
@using ( Html.BeginForm() )
{
< table >
< tr >
< td >
@Html.LabelFor(m => m.Item1.FirstName)
@Html.TextBoxFor(m => m.Item1.FirstName)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item1.LastName)
@Html.TextBoxFor(m => m.Item1.LastName)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Line1)
@Html.TextBoxFor(m => m.Item2.Line1)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Line2)
@Html.TextBoxFor(m => m.Item2.Line2)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.ZipCode)
@Html.TextBoxFor(m => m.Item2.ZipCode)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.City)
@Html.TextBoxFor(m => m.Item2.City)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.State)
@Html.TextBoxFor(m => m.Item2.State)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Country)
@Html.TextBoxFor(m => m.Item2.Country)
< /td >
< /tr >
< tr >
< td >
< input type="submit" value="Submit" id="btnSubmit" / >
< /td >
< /tr >
< /table >
}
Create model name PersonDetails.cs
using System.Collections.Generic;
namespace MVCJsonAjax.Models
{
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List< Address > Addresses { get; set; }
}
public class Address
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
}
Create Controller - SaveController.cs
using System.Web.Mvc;
using MVCJsonAjax.Models;
namespace MVCJsonAjax.Controllers
{
public class SaveController : Controller
{
//
// GET: /Save/
[ActionName("SaveData"),HttpGet]
public ActionResult SaveData()
{
return View();
}
[ActionName("SaveData"), HttpPost]
public JsonResult SaveData(Person objPerson,Address objAddress)
{
JsonResult result = new JsonResult();
// Save logic - save person and address details
result.Data = "Saved Successfully";
return result;
}
}
}
Create View for ActionResult SaveData()
@using MVCJsonAjax.Models
@{
ViewBag.Title = "SaveData";
}
< h2 >
Save Data< /h2 >
< div>
< div id="message" >
< /div>
< /div >
< script type =" text/javascript ">
$(document).ready(function () {
$('#btnSubmit').click(function () {
var Person =
{
FirstName: $('#Item1_FirstName').val(),
LastName: $('#Item1_LastName').val()
};
var Address =
{
Line1: $('#Item2_Line1').val(),
Line2: $('#Item2_Line2').val(),
ZipCode: $('#Item2_ZipCode').val(),
City: $('#Item2_City').val(),
State: $('#Item2_State').val(),
Country: $('#Item2_Country').val()
};
var obj = { "Per": Person, "Add": Address};
$.ajax({
url: '/Save/SaveData',
type: "POST",
data:JSON.stringify({objPerson: Person ,objAddress: Address }),
cache: false,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (result) {
$('#message').html(result).fadeIn();
}
});
return false;
});
});
@model Tuple< Person, Address >
@using ( Html.BeginForm() )
{
< table >
< tr >
< td >
@Html.LabelFor(m => m.Item1.FirstName)
@Html.TextBoxFor(m => m.Item1.FirstName)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item1.LastName)
@Html.TextBoxFor(m => m.Item1.LastName)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Line1)
@Html.TextBoxFor(m => m.Item2.Line1)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Line2)
@Html.TextBoxFor(m => m.Item2.Line2)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.ZipCode)
@Html.TextBoxFor(m => m.Item2.ZipCode)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.City)
@Html.TextBoxFor(m => m.Item2.City)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.State)
@Html.TextBoxFor(m => m.Item2.State)
< /td >
< /tr >
< tr >
< td >
@Html.LabelFor(m => m.Item2.Country)
@Html.TextBoxFor(m => m.Item2.Country)
< /td >
< /tr >
< tr >
< td >
< input type="submit" value="Submit" id="btnSubmit" / >
< /td >
< /tr >
< /table >
}
4 August 2013
Dynamic v. Strongly Typed Views in MVC C# Razor Engine
Dynamic vs. Strongly Typed Views
Dynamic
Because we’re using a dynamic and not a strongly typed view, intellisense doesn’t help us. The completed code is shown below:
@model dynamic
@ {
ViewBag.Title = "IndexNotStonglyTyped";
}
< p >
< ul >
@foreach (var blog in Model) {
< li >
< a href="@blog.URL">@blog.Name< /a >
< /li >
}
< /ul >
< /p >
Strongly Typed Views
When it is strongly typed view.
Inside the new view template we get intellisense support.
Dynamic
Because we’re using a dynamic and not a strongly typed view, intellisense doesn’t help us. The completed code is shown below:
@model dynamic
@ {
ViewBag.Title = "IndexNotStonglyTyped";
}
Index Not Stongly Typed< /h2 >
< p >
< ul >
@foreach (var blog in Model) {
< li >
< a href="@blog.URL">@blog.Name< /a >
< /li >
}
< /ul >
< /p >
Strongly Typed Views
When it is strongly typed view.
Inside the new view template we get intellisense support.
Handle Multiple Submit button in MVC C#
Handle Multiple Submit button in MVC C#
View
<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
< input type="submit" name="submitButton" value="Send" / >
< input type="submit" name="submitButton" value="Cancel" / >
<% Html.EndForm(); %>
Controller
public class MyController : Controller {
public ActionResult MyAction(string submitButton) {
switch(submitButton) {
case "Send":
// delegate sending to another controller action
return(Send());
case "Cancel":
// call another action to perform the cancellation
return(Cancel());
default:
// If they've submitted the form without a submitButton,
// just return the view again.
return(View());
}
}
private ActionResult Cancel() {
// process the cancellation request here.
return(View("Cancelled"));
}
private ActionResult Send() {
// perform the actual send operation here.
return(View("SendConfirmed"));
}
}
View
<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
< input type="submit" name="submitButton" value="Send" / >
< input type="submit" name="submitButton" value="Cancel" / >
<% Html.EndForm(); %>
Controller
public class MyController : Controller {
public ActionResult MyAction(string submitButton) {
switch(submitButton) {
case "Send":
// delegate sending to another controller action
return(Send());
case "Cancel":
// call another action to perform the cancellation
return(Cancel());
default:
// If they've submitted the form without a submitButton,
// just return the view again.
return(View());
}
}
private ActionResult Cancel() {
// process the cancellation request here.
return(View("Cancelled"));
}
private ActionResult Send() {
// perform the actual send operation here.
return(View("SendConfirmed"));
}
}
Delegates Example in C#
//Delegates Example in C#
using System;
using System.Windows.Forms;
namespace DelegatesTesting
{
public partial class DelegatesTest : Form
{
public DelegatesTest()
{
InitializeComponent();
}
//Delegate Declaration
public delegate int PointtoAddFunction(int i, int j);
private void btnSubmit_Click(object sender, EventArgs e)
{
//Point the Delegate object with Method
PointtoAddFunction handler = AddFunction;
//Invoke the Method
MessageBox.Show(handler(10, 12).ToString());
}
//Method
public int AddFunction(int i, int j)
{
return i + j;
}
}
}
using System;
using System.Windows.Forms;
namespace DelegatesTesting
{
public partial class DelegatesTest : Form
{
public DelegatesTest()
{
InitializeComponent();
}
//Delegate Declaration
public delegate int PointtoAddFunction(int i, int j);
private void btnSubmit_Click(object sender, EventArgs e)
{
//Point the Delegate object with Method
PointtoAddFunction handler = AddFunction;
//Invoke the Method
MessageBox.Show(handler(10, 12).ToString());
}
//Method
public int AddFunction(int i, int j)
{
return i + j;
}
}
}
Subscribe to:
Posts (Atom)
Implementing OAuth validation in a Web API
I mplementing OAuth validation in a Web API Implementing OAuth validation in a Web API using C# typically involves several key steps to sec...
-
ViewBag, ViewData, TempData and View State in MVC ASP.NET MVC offers us three options ViewData, ViewBag and TempData for passing data from...
-
· Azure Service Fabric is Microsoft’s Platform-as-a-Service (PaaS) and is used to build and deploy microservices-based cloud applicat...
-
// Export Datatable to Excel in C# Windows application using System; using System.Data; using System.IO; using System.Windows.Forms; ...