আপনি অন্য উত্তরের পরে আপনার মন্তব্যে যে ওভারলোডিং সম্পর্কে জিজ্ঞাসা করেছিলেন সে সম্পর্কে আরও কিছু বিশদ যুক্ত করতে এখানে একটি সংক্ষিপ্তসার দেওয়া হল। ApiController
প্রতিটি GET
প্রশ্নের সাথে কোন ক্রিয়াকলাপটি প্রদর্শন করা হবে তা শোতে দেওয়া মন্তব্যগুলি :
public class ValuesController : ApiController
{
public IEnumerable<string> Get()
{
return Request.GetQueryNameValuePairs().Select(pair => "Get() => " + pair.Key + ": " + pair.Value);
}
public IEnumerable<string> Get(int height)
{
return new string[] { "Get(height) => height: " + height };
}
public IEnumerable<string> Get(string height)
{
return new string[] { "Get(height) => height: " + height };
}
public IEnumerable<string> Get(string height, string width)
{
return new string[] { "Get(height, width) => height: " + height + ", width: " + width };
}
}
আপনি যদি ভেবে থাকেন তবে এর জন্য আপনার কেবলমাত্র একটি একক রুটের প্রয়োজন হবে:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
এবং আপনি এই এমভিসি ভিউ, বা সিমলার কিছু দিয়ে পরীক্ষা করতে পারেন। হ্যাঁ, আমি জানি যে আপনি মার্কআপের সাথে জাভাস্ক্রিপ্ট মিশ্রিত করবেন না এবং আপনি সাধারণত বুটস্ট্র্যাপ ব্যবহার করেন না তবে এটি কেবল ডেমো উদ্দেশ্যে purposes
<div class="jumbotron">
<h1>Multiple parameters test</h1>
<p class="lead">Click a link below, which will send an HTTP GET request with parameters to a WebAPI controller.</p>
</div>
<script language="javascript">
function passNothing() {
$.get("/api/values", function (data) { alert(data); });
}
function passHeight(height) {
$.get("/api/values?height=" + height, function (data) { alert(data); });
}
function passWidth(width) {
$.get("/api/values?width=" + width, function (data) { alert(data); });
}
function passHeightAndWidth(height, width) {
$.get("/api/values?height=" + height + "&width=" + width, function (data) { alert(data); });
}
function passDepth(depth) {
$.get("/api/values?depth=" + depth, function (data) { alert(data); });
}
function passHeightAndDepth(height, depth) {
$.get("/api/values?height=" + height + "&depth=" + depth, function (data) { alert(data); });
}
function passWidthAndDepth(width, depth) {
$.get("/api/values?width=" + width + "&depth=" + depth, function (data) { alert(data); });
}
function passHeightWidthAndDepth(height, width, depth) {
$.get("/api/values?height=" + height + "&width=" + width + "&depth=" + depth, function (data) { alert(data); });
}
function passWidthWithPascalCase(width) {
$.get("/api/values?Width=" + width, function (data) { alert(data); });
}
</script>
<div class="row">
<button class="btn" onclick="passNothing();">Pass Nothing</button>
<button class="btn" onclick="passHeight(5);">Pass Height of 5</button>
<button class="btn" onclick="passWidth(8);">Pass Width of 8</button>
<button class="btn" onclick="passHeightAndWidth(3, 7);">Pass Height of 3 and Width of 7</button>
<button class="btn" onclick="passDepth(2);">Pass Depth of 2</button>
<button class="btn" onclick="passHeightAndDepth(4, 5);">Pass Height of 4 and Depth of 5</button>
<button class="btn" onclick="passWidthAndDepth(3, 5);">Pass Width of 3 and Depth of 5</button>
<button class="btn" onclick="passHeightWidthAndDepth(7, 2, 9);">Pass Height of 7, Width of 2 and Depth of 9</button>
<button class="btn" onclick="passHeightWidthAndDepth(7, 2, 9);">Pass Height of 7, Width of 2 and Depth of 9</button>
<button class="btn" onclick="passWidthWithPascalCase(8);">Pass Width of 8, but with Pascal case</button>
</div>